-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathrod
executable file
·73 lines (68 loc) · 1.91 KB
/
rod
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
#!/bin/bash
################################################################################
# functions
################################################################################
function help () {
echo "usage: rod [start|login|stop|ruby|pry|scala|amm|go|gore]" && exit
}
function do_nothing_in_container () {
echo "In container, action argument is useless" && exit
}
################################################################################
# action sequence
################################################################################
[ -z $1 ] && help && exit
action=$1
case $action in
start)
if [ ! -f /etc/repls-on-docker ]; then
if docker ps | grep -q rod; then
echo 'rod has already started, try `rod login` to enter the container' && exit
else
ttl=86400
docker run -d --name rod kyagi/rod sh -c "while true; do sleep $ttl; done" && exit
fi
else
do_nothing_in_container
fi
;;
login)
if [ ! -f /etc/repls-on-docker ]; then
if docker ps | grep -q rod; then
docker exec -it rod bash && exit
else
echo 'You need to `rod start` before login' && exit
fi
else
do_nothing_in_container
fi
;;
stop)
if [ ! -f /etc/repls-on-docker ]; then
if docker ps | grep -q rod; then
(docker stop rod; docker rm rod) > /dev/null && exit
else
echo 'No rod container, nothing to do' && exit
fi
else
do_nothing_in_container
fi
;;
ruby|pry|scala|amm|go|gore) : ;;
*) help;;
esac
################################################################################
# repl sequence
################################################################################
lang=$1
case $lang in
ruby|pry) repl=pry;;
scala|amm) repl=amm;;
go|gore) repl=gore;;
*) help;;
esac
if [ -f /etc/repls-on-docker ]; then
$repl
else
docker run -it kyagi/rod $repl
fi