mirror of
https://shylinux.com/x/ContextOS
synced 2025-04-25 08:48:06 +08:00
107 lines
2.7 KiB
Bash
Executable File
107 lines
2.7 KiB
Bash
Executable File
#! /bin/bash -i
|
|
|
|
# 日志配置
|
|
export ctx_err=${ctx_err:="/dev/null"}
|
|
export ctx_log=${ctx_log:="var/log"}
|
|
export ctx_log_debug=${ctx_log_debug:=false}
|
|
export ctx_log_disable=${ctx_log_disable:=false}
|
|
export ctx_gdb_enable=${ctx_gdb_enable:=false}
|
|
|
|
# 目录配置
|
|
export ctx_app=${ctx_app:="shy"}
|
|
export ctx_bin=${ctx_bin:=$(pwd)/bin/${ctx_app}}; [ -e $ctx_bin ] || export ctx_bin=`which ${ctx_app}`
|
|
export ctx_root=${ctx_root:=/usr/local/context}
|
|
export ctx_home=${ctx_home:=~/context}
|
|
|
|
# 网络配置
|
|
export ctx_cas=${ctx_cas:=""}
|
|
export ctx_ups=${ctx_ups:=""}
|
|
export ctx_box=${ctx_box:=""}
|
|
export ctx_dev=${ctx_dev:="https://shylinux.com"}
|
|
|
|
# 服务配置
|
|
export ctx_type=${ctx_type:="node"}
|
|
export ssh_port=${ssh_port:=":9090"}
|
|
export web_port=${web_port:=":9095"}
|
|
|
|
# 用户配置
|
|
export node_cert=${node_cert:=""}
|
|
export node_key=${node_key:=""}
|
|
export HOSTNAME=${HOSTNAME:=""}
|
|
export USER=${USER:=""}
|
|
export PWD=${PWD:=""}
|
|
|
|
install() {
|
|
if [ -n "$1" ]; then mkdir $1; cd $1; shift; fi
|
|
|
|
md5=md5sum
|
|
case `uname -s` in
|
|
"Darwin") GOOS=darwin md5=md5;;
|
|
"Linux") GOOS=linux;;
|
|
*) GOOS=windows;;
|
|
esac
|
|
case `uname -m` in
|
|
"x86_64") GOARCH=amd64;;
|
|
"armv7l") GOARCH=arm;;
|
|
*) GOARCH=386;;
|
|
esac
|
|
|
|
echo
|
|
echo
|
|
|
|
|
|
which wget && get="wget -q -O" || get="curl -o"
|
|
$get ${ctx_app} "$ctx_dev/publish/bench?GOOS=$GOOS&GOARCH=$GOARCH" && chmod a+x ${ctx_app} || return
|
|
|
|
target=install && [ -n "$1" ] && target=$1
|
|
${md5} ${ctx_app} && $(pwd)/${ctx_app} upgrade ${target} || return
|
|
|
|
mv ${ctx_app} bin/${ctx_app}
|
|
# && bin/boot.sh
|
|
}
|
|
|
|
main() {
|
|
trap HUP hup
|
|
log "\nstarting..."
|
|
while true; do
|
|
date && ${ctx_bin} "$@" 2>>${ctx_err} && break
|
|
log "\n\nrestarting..." && sleep 1
|
|
done
|
|
}
|
|
action() {
|
|
pid=$(cat var/run/bench.pid)
|
|
log "kill" $1 $pid && kill -$1 ${pid}
|
|
}
|
|
hup() { echo "term hup"; }
|
|
log() { echo -e $*; }
|
|
|
|
log "bin: $ctx_bin"
|
|
log "box: $ctx_box"
|
|
log "dev: $ctx_dev"
|
|
log "ups: $ctx_ups"
|
|
|
|
case $1 in
|
|
help) echo
|
|
echo " >>>> welcome context world! <<<<"
|
|
echo
|
|
echo "more info see https://github.com/shylinux/context"
|
|
echo
|
|
echo " install [dir [type]] 安装并启动服务"
|
|
echo " [start] 启动服务"
|
|
echo " create dir 创建并启动服务"
|
|
echo " restart 重启服务"
|
|
echo " upgrade 升级服务"
|
|
echo " quit 保存并停止服务"
|
|
echo " term 停止服务"
|
|
;;
|
|
install) shift && install "$@";;
|
|
installs) shift && install "$@" && bin/boot.sh ;;
|
|
start) shift && main "$@";;
|
|
"") main "$@";;
|
|
create) mkdir -p $2; cd $2 && shift && shift && main "$@";;
|
|
restart) action 30;;
|
|
upgrade) action 31;;
|
|
quit) action QUIT;;
|
|
term) action TERM
|
|
esac
|