|
|
|
|
|
|
|
|
import gradio as gr |
|
|
|
|
|
from toolbox.os.command import Command |
|
|
|
|
|
|
|
|
def shell(cmd: str): |
|
|
return Command.popen(cmd) |
|
|
|
|
|
|
|
|
def get_shell_tab(): |
|
|
with gr.TabItem("shell"): |
|
|
shell_text = gr.Textbox(label="cmd") |
|
|
shell_button = gr.Button("run") |
|
|
shell_output = gr.Textbox(label="output", max_lines=100) |
|
|
|
|
|
shell_button.click( |
|
|
shell, |
|
|
inputs=[shell_text, ], |
|
|
outputs=[shell_output], |
|
|
) |
|
|
|
|
|
gr.Examples( |
|
|
examples=[ |
|
|
[ |
|
|
"echo \"CPU使用率: $(grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage \"%\"}')\"" |
|
|
], [ |
|
|
"echo \"内存使用: $(free -m | awk '/Mem:/ {printf \"%.1f%%\", $3/$2*100}')\"" |
|
|
], [ |
|
|
"echo \"内存总量: $(grep MemTotal /proc/meminfo | awk '{print $2/1024 \" MB\"}')\"" |
|
|
], [ |
|
|
"echo \"可用内存: $(grep MemAvailable /proc/meminfo | awk '{print $2/1024 \" MB\"}')\"" |
|
|
], [ |
|
|
"grep 'less' logs/info.log | tail -n 15" |
|
|
], [ |
|
|
"ffmpeg -i /home/user/app/data/video/download/video.mp4 -vn -acodec libmp3lame -q:a 2 /home/user/app/data/video/download/audio.mp3" |
|
|
] |
|
|
], |
|
|
inputs=[shell_text], |
|
|
outputs=[shell_output], |
|
|
) |
|
|
|
|
|
return locals() |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
pass |
|
|
|