mirror of
https://github.com/monlor/MIXBOX-ARCHIVE.git
synced 2026-03-11 07:51:54 +00:00
116 lines
2.6 KiB
Bash
Executable File
116 lines
2.6 KiB
Bash
Executable File
#!/bin/sh
|
||
# 快速生成新app
|
||
dir=./apps
|
||
appname="$1"
|
||
service="$2"
|
||
appinfo="$3"
|
||
needver=""
|
||
[ -z "${appname}" -o -z "$service" -o -z "${appinfo}" ] && echo "信息为空(插件名,服务名,介绍)!" && exit
|
||
[ -d $dir/${appname} ] && echo "插件已存在!" && exit
|
||
cd $dir || (mkdir -p $dir && cd $dir)
|
||
mkdir -p ${appname}
|
||
mkdir -p ${appname}/bin
|
||
mkdir -p ${appname}/config
|
||
mkdir -p ${appname}/scripts
|
||
echo "生成插件uci配置文件..."
|
||
cat > ${appname}/config/${appname}.uci <<-EOF
|
||
service="$service"
|
||
appname="${appname}"
|
||
needver="0.0.1"
|
||
backupfiles=""
|
||
supports="linux_arm,linux_mips,linux_x86_64,darwin_linux_x86_64"
|
||
appinfo="${appinfo}"
|
||
newinfo=""
|
||
version="0.0.1"
|
||
EOF
|
||
echo "生成工具箱配置文件..."
|
||
cat > ${appname}/scripts/config.sh <<EOF
|
||
#!/bin/sh
|
||
#copyright by monlor
|
||
|
||
eval \`mbdb export ${appname}\`
|
||
source "\$(mbdb get mixbox.main.path)"/bin/base
|
||
echo "********* \$service ***********"
|
||
echo "[\${appinfo}]"
|
||
readsh "启动\${appname}服务[1/0] " "enable" "1"
|
||
if [ "\$enable" == '1' ]; then
|
||
# Scripts Here
|
||
|
||
# readsh "请输入\${appname}外网访问配置[1/0]" "openport" "0"
|
||
readsh "重启\${appname}服务[1/0]" "res" "1"
|
||
[ "\$res" != '0' ] && exit 0
|
||
fi
|
||
exit 1
|
||
EOF
|
||
echo "生成插件运行脚本..."
|
||
cat > ${appname}/scripts/${appname}.sh <<-EOF
|
||
#!/bin/sh
|
||
#copyright by monlor
|
||
eval \`mbdb export ${appname}\`
|
||
source "\$(mbdb get mixbox.main.path)"/bin/base
|
||
port=""
|
||
|
||
start() {
|
||
|
||
[ -n "\$(pidof \${appname})" ] && logsh "【\$service】" "\${appname}已经在运行!" && exit 1
|
||
logsh "【\$service】" "正在启动\${appname}服务... "
|
||
# cru a "\${appname}" "0 6 * * * \${mbroot}/apps/\${appname}/scripts/\${appname}.sh restart"
|
||
# Scripts Here
|
||
|
||
# open_port
|
||
# write_firewall_start
|
||
daemon \${mbroot}/apps/\${appname}/bin/\${appname}
|
||
if [ \$? -ne 0 ]; then
|
||
logsh "【\$service】" "启动\${appname}服务失败!" && end
|
||
else
|
||
logsh "【\$service】" "启动\${appname}服务完成!"
|
||
# logsh "【\$service】" "请在浏览器打开地址:http://\$lanip:\$port"
|
||
fi
|
||
|
||
}
|
||
|
||
stop() {
|
||
|
||
logsh "【\$service】" "正在停止\${appname}服务... "
|
||
[ "\$enable" == '0' ] && destroy
|
||
# close_port
|
||
# remove_firewall_start
|
||
killall -9 \${appname} &> /dev/null
|
||
|
||
}
|
||
|
||
destroy() {
|
||
|
||
# End app, Scripts here
|
||
# cru d "\${appname}"
|
||
return
|
||
|
||
}
|
||
|
||
end() {
|
||
|
||
mbdb set \${appname}.main.enable=0
|
||
stop && exit 1
|
||
|
||
}
|
||
|
||
status() {
|
||
|
||
if [ -n "\$(pidof \${appname})" ]; then
|
||
status="运行中|1"
|
||
else
|
||
status="未运行|0"
|
||
fi
|
||
mbdb set \${appname}.main.status="\$status"
|
||
}
|
||
|
||
case "\$1" in
|
||
start) start ;;
|
||
stop) stop ;;
|
||
restart) stop; start ;;
|
||
reload) close_port && open_port ;;
|
||
status) status ;;
|
||
esac
|
||
|
||
EOF
|