| import os |
| import subprocess |
| import gradio as gr |
|
|
| |
| APP_PASSWORD = os.getenv("APP_PASSWORD") |
|
|
| |
| def execute_command(password, script): |
| |
| if password != APP_PASSWORD: |
| return {"error": "Invalid password!"} |
| |
| |
| if not script: |
| return {"error": "No script provided!"} |
| |
| try: |
| |
| process = subprocess.Popen( |
| script, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE |
| ) |
| stdout, stderr = process.communicate() |
|
|
| |
| return { |
| "stdout": stdout.decode("utf-8"), |
| "stderr": stderr.decode("utf-8"), |
| "exit_code": process.returncode |
| } |
| except Exception as e: |
| return {"error": f"Error executing script: {str(e)}"} |
|
|
| |
| def gradio_interface(password, script): |
| return execute_command(password, script) |
|
|
| |
| interface = gr.Interface( |
| fn=gradio_interface, |
| inputs=[ |
| gr.Textbox(label="Password", type="password"), |
| gr.Textbox(label="Script", lines=5, placeholder="Enter your script here...") |
| ], |
| outputs="json", |
| title="Command Executor", |
| description="Provide a password and a shell script to execute commands remotely." |
| ) |
|
|
| |
| if __name__ == "__main__": |
| interface.launch(share=True, inline=True) |
|
|