-
Notifications
You must be signed in to change notification settings - Fork 50
/
Copy pathxadmin.sh
executable file
·137 lines (123 loc) · 2.26 KB
/
xadmin.sh
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#!/bin/bash
action=${1-}
target=${2-}
function usage() {
echo "xAdmin Server Management Script"
echo
echo "Usage: "
echo " ./xadmin.sh [COMMAND] [ARGS...]"
echo " ./xadmin.sh --help"
echo
echo " start Start API Server"
echo " stop Stop API Server"
echo " restart Restart API Server"
echo " status Check API Server"
echo " down Offline API Server"
echo
echo "More Commands: "
echo " init_data Init demo info"
echo
}
function start_docker() {
if command -v systemctl&>/dev/null; then
systemctl daemon-reload
systemctl enable docker
systemctl start docker
fi
if ! docker ps &>/dev/null; then
echo "error: docker start failed"
exit 1
fi
}
function check_docker_start() {
if ! which docker &>/dev/null ;then
echo "error: docker not found, please run install_docker"
exit 1
fi
if ! docker ps &>/dev/null; then
start_docker
fi
}
EXE=""
function start() {
check_docker_start
${EXE} up -d
}
function stop() {
if [[ -n "${target}" ]]; then
${EXE} stop "${target}"
return
fi
${EXE} stop
}
function close() {
if [[ -n "${target}" ]]; then
${EXE} stop "${target}"
return
fi
services="xadmin-server"
for i in ${services}; do
${EXE} stop "${i}"
done
}
function restart() {
stop
echo -e "\n"
start
}
function init_data() {
if ${EXE} ps|grep xadmin-server|grep healthy &>/dev/null;then
docker exec -it xadmin-server sh -c 'python utils/init_data.py'
else
echo "error: xadmin-server not healthy"
exit 1
fi
}
function main() {
if [[ "${action}" == "help" || "${action}" == "h" || "${action}" == "-h" || "${action}" == "--help" ]]; then
echo ""
else
EXE="docker compose"
fi
case "${action}" in
start)
start
;;
restart)
restart
;;
stop)
stop
;;
close)
close
;;
status)
${EXE} ps
;;
down)
if [[ -z "${target}" ]]; then
${EXE} down -v
else
${EXE} stop "${target}" && ${EXE} rm -f "${target}"
fi
;;
init_data)
init_data
;;
help)
usage
;;
--help)
usage
;;
-h)
usage
;;
*)
echo "No such command: ${action}"
usage
;;
esac
}
main "$@"