Hellmusic / app.py
dragxd's picture
Update app.py
6c3ee56 verified
import gradio as gr
import subprocess
import os
import shutil
REPO_URL = "https://github.com/iamuput/NezukoMusic"
FOLDER_NAME = "NezukoMusic"
START_SCRIPT = os.path.join("Nezuko", "start") # path inside the repo
def clone_repo():
if os.path.exists(FOLDER_NAME):
shutil.rmtree(FOLDER_NAME)
try:
output = subprocess.check_output(["git", "clone", REPO_URL], stderr=subprocess.STDOUT)
return output.decode()
except subprocess.CalledProcessError as e:
return f"Git Error:\n{e.output.decode()}"
def install_requirements():
req_path = os.path.join(FOLDER_NAME, "requirements.txt")
if not os.path.isfile(req_path):
return "requirements.txt not found."
try:
output = subprocess.check_output(["pip", "install", "-r", req_path], stderr=subprocess.STDOUT)
return output.decode()
except subprocess.CalledProcessError as e:
return e.output.decode()
def start_music_script():
script_path = os.path.join(FOLDER_NAME, START_SCRIPT)
if not os.path.isfile(script_path):
return f"Start script not found at: {script_path}"
try:
output = subprocess.check_output(["bash", script_path], cwd=FOLDER_NAME, stderr=subprocess.STDOUT)
return output.decode()
except subprocess.CalledProcessError as e:
return f"Error running start script:\n{e.output.decode()}"
with gr.Blocks() as demo:
gr.Markdown("## Nezuko Music Bot Setup Panel")
clone_btn = gr.Button("1. Clone NezukoMusic Repository")
clone_output = gr.Textbox(label="Git Clone Output", lines=10)
install_btn = gr.Button("2. Install Requirements")
install_output = gr.Textbox(label="Install Output", lines=10)
start_btn = gr.Button("3. Start Nezuko Music Bot")
start_output = gr.Textbox(label="Bot Output", lines=10)
clone_btn.click(fn=clone_repo, outputs=clone_output)
install_btn.click(fn=install_requirements, outputs=install_output)
start_btn.click(fn=start_music_script, outputs=start_output)
demo.launch()