import gradio as gr import subprocess import os def execute_wp_cli(command, args): """ Função para executar comandos WP-CLI com argumentos. """ try: # Recupera as variáveis de ambiente seguras wp_path = os.getenv("WP_PATH") wp_user = os.getenv("WP_USER") wp_password = os.getenv("WP_PASSWORD") if not wp_path or not wp_user or not wp_password: return "Erro: Variáveis de ambiente WP_PATH, WP_USER ou WP_PASSWORD não definidas." # Define o comando completo com credenciais full_command = ['wp', '--path=' + wp_path, '--user=' + wp_user, '--prompt=password', command] + args.split() # Executa o comando WP-CLI result = subprocess.run(full_command, input=wp_password + "\n", capture_output=True, text=True, shell=True) # Retorna a saída do comando if result.returncode != 0: return f"Erro ao executar o comando: {result.stderr}" return result.stdout except Exception as e: return f"Erro: {str(e)}" # Lista de comandos WP-CLI comuns commands = [ "plugin list", "plugin activate", "plugin deactivate", "theme list", "theme activate", "post list", "post create", "post update", "post delete", ] # Cria a interface Gradio iface = gr.Interface( fn=execute_wp_cli, # Função que será chamada inputs=[ gr.Dropdown(choices=commands, label="Comando WP-CLI"), # Menu suspenso para selecionar o comando gr.Textbox(lines=1, placeholder="Digite os argumentos (se necessário)", label="Argumentos") # Entrada de texto para argumentos ], outputs="text", # Saída de texto com o resultado title="Painel de Controle WP-CLI", # Título do painel description="Selecione um comando WP-CLI e insira os argumentos necessários." # Descrição do painel ) # Inicia a interface iface.launch()