File size: 2,028 Bytes
419b943
 
 
 
 
c659132
 
6c3ee56
419b943
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
61befe3
 
 
6c3ee56
419b943
c659132
419b943
 
c659132
419b943
 
c659132
419b943
c659132
419b943
 
 
 
 
c659132
419b943
 
 
 
61befe3
419b943
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
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()