2
2
3
3
function print_help {
4
4
echo " usage:"
5
- echo " ./manage [makemigrations|migrate|clean|rebuild|run]"
5
+ echo " ./manage [makemigrations|migrate|clean|rebuild|run|stop ]"
6
6
}
7
7
8
8
[[ $# -ne 1 ]] && print_help && exit
@@ -27,30 +27,50 @@ function migrate {
27
27
python3 manage.py inituser --username=root --password=rootroot --action=create_super_admin
28
28
}
29
29
30
- function run {
31
- # run dramatiq
32
- pgrep dramatiq > /dev/null
30
+ function run_onl {
31
+ [[ ! -d data/log ]] && mkdir -p data/log && echo ' mkdir data/log'
33
32
34
33
# using postgres
35
34
# docker run -it -d -e POSTGRES_DB=onlinejudge -e POSTGRES_USER=onlinejudge -e POSTGRES_PASSWORD=onlinejudge -p 5435:5432 --name oj-postgres-dev postgres:10-alpine
36
35
36
+ # run dramatiq
37
+ pgrep dramatiq > /dev/null
37
38
if [[ $? -ne 0 ]]; then
38
39
echo " running dramatiq ..."
39
40
python3 manage.py rundramatiq & > data/log/dramatiq.log &
40
41
else
41
42
echo " dramatiq is already running ..."
42
43
fi
43
- docker container ls > /dev/null
44
-
44
+
45
+ # run redis
46
+ docker container ls | grep redis > /dev/null
45
47
if [[ $? -ne 0 ]]; then
46
48
echo " running redis in docker ..."
47
- docker run -it -d -p 6380:6379 --name oj-redis-dev redis:4.0-alpine
49
+ docker ps -a | grep redis > /dev/null
50
+ if [[ $? -ne 0 ]]; then
51
+ docker run -it -d -p 6380:6379 --name oj-redis-dev redis:4.0-alpine > /dev/null
52
+ else
53
+ container_id=$( docker ps -a | grep redis | awk ' {print $1}' )
54
+ docker container start $container_id
55
+ fi
48
56
else
49
57
echo " redis is already running"
50
58
fi
51
59
52
- echo " running onl ..."
53
- python3 manage.py runserver 0.0.0.0:7890 & > data/log/onl.log &
60
+ # run onl
61
+ pgrep -f " python3 manage.py runserver" > /dev/null
62
+ if [[ $? -ne 0 ]]; then
63
+ echo " running onl ..."
64
+ python3 manage.py runserver 0.0.0.0:7890 & > data/log/onl.log &
65
+ else
66
+ echo " onl is already running ..."
67
+ fi
68
+ }
69
+
70
+ function stop_onl {
71
+ pkill dramatiq
72
+ pkill -f " python3 manage.py runserver"
73
+ docker container stop oj-redis-dev > /dev/null
54
74
}
55
75
56
76
if [[ $cmd == " make" || $cmd == " makemigrations" ]]; then
@@ -65,5 +85,7 @@ elif [[ $cmd == "rebuild" ]]; then
65
85
clean
66
86
migrate
67
87
elif [[ $cmd == " run" ]]; then
68
- run
88
+ run_onl
89
+ elif [[ $cmd == " stop" ]]; then
90
+ stop_onl
69
91
fi
0 commit comments