1
+ #! /usr/bin/env bash
2
+ basefile=" install"
3
+ logfile=" general.log"
4
+ timestamp=` date ' +%Y-%m-%d %H:%M:%S' `
5
+
6
+ if [ " $# " -ne 1 ]; then
7
+ msg=" [ERROR]: $basefile failed to receive enough args"
8
+ echo " $msg "
9
+ echo " $msg " >> $logfile
10
+ exit 1
11
+ fi
12
+
13
+ function setup-logging(){
14
+ scope=" setup-logging"
15
+ info_base=" [$timestamp INFO]: $basefile ::$scope "
16
+
17
+ echo " $info_base started" >> $logfile
18
+
19
+ echo " $info_base removing old logs" >> $logfile
20
+
21
+ rm -f $logfile
22
+
23
+ echo " $info_base ended" >> $logfile
24
+
25
+ echo " ================" >> $logfile
26
+ }
27
+
28
+ function root-check(){
29
+ scope=" root-check"
30
+ info_base=" [$timestamp INFO]: $basefile ::$scope "
31
+
32
+ echo " $info_base started" >> $logfile
33
+
34
+ # Make sure the script is running as root.
35
+ if [ " $UID " -ne " 0" ]; then
36
+ echo " [$timestamp ERROR]: $basefile ::$scope you must be root to run $0 " >> $logfile
37
+ echo " ==================" >> $logfile
38
+ echo " You must be root to run $0 . Try the following"
39
+ echo " sudo $0 "
40
+ exit 1
41
+ fi
42
+
43
+ echo " $info_base ended" >> $logfile
44
+ echo " ================" >> $logfile
45
+ }
46
+
47
+ function docker-check() {
48
+ scope=" docker-check"
49
+ info_base=" [$timestamp INFO]: $basefile ::$scope "
50
+ cmd=` docker -v`
51
+
52
+ echo " $info_base started" >> $logfile
53
+
54
+ if [ -z " $cmd " ]; then
55
+ echo " $info_base docker not installed"
56
+ echo " $info_base docker not installed" >> $logfile
57
+ fi
58
+
59
+ echo " $info_base ended" >> $logfile
60
+ echo " ================" >> $logfile
61
+
62
+ }
63
+
64
+ function docker-compose-check() {
65
+ scope=" docker-compose-check"
66
+ info_base=" [$timestamp INFO]: $basefile ::$scope "
67
+ cmd=` docker-compose -v`
68
+
69
+ echo " $info_base started" >> $logfile
70
+
71
+ if [ -z " $cmd " ]; then
72
+ echo " $info_base docker-compose not installed"
73
+ echo " $info_base docker-compose not installed" >> $logfile
74
+ fi
75
+
76
+ echo " $info_base ended" >> $logfile
77
+ echo " ================" >> $logfile
78
+
79
+ }
80
+ function usage() {
81
+ echo " "
82
+ echo " Usage: "
83
+ echo " "
84
+ echo " -u: start."
85
+ echo " -d: tear down."
86
+ echo " -h: Display this help and exit."
87
+ echo " "
88
+ }
89
+ function start-up(){
90
+
91
+ scope=" start-up"
92
+ docker_img_name=` head -n 1 README.md | sed ' s/# //' `
93
+ info_base=" [$timestamp INFO]: $basefile ::$scope "
94
+
95
+ echo " $info_base started" >> $logfile
96
+
97
+ echo " $info_base build image" >> $logfile
98
+
99
+ sudo docker-compose up --build
100
+
101
+ echo " $info_base running image" >> $logfile
102
+
103
+ echo " $info_base ended" >> $logfile
104
+
105
+ echo " ================" >> $logfile
106
+ }
107
+ function tear-down(){
108
+
109
+ scope=" tear-down"
110
+ info_base=" [$timestamp INFO]: $basefile ::$scope "
111
+
112
+ echo " $info_base started" >> $logfile
113
+
114
+ echo " $info_base stoping services" >> $logfile
115
+
116
+ sudo docker-compose down
117
+
118
+ echo " $info_base ended" >> $logfile
119
+
120
+ echo " ================" >> $logfile
121
+ }
122
+
123
+ root-check
124
+ docker-check
125
+ docker-compose-check
126
+
127
+ while getopts " :udh" opts; do
128
+ case $opts in
129
+ u)
130
+ setup-logging
131
+ start-up ;;
132
+ d)
133
+ tear-down ;;
134
+ h)
135
+ usage
136
+ exit 0 ;;
137
+ /? )
138
+ usage
139
+ exit 1 ;;
140
+ esac
141
+ done
0 commit comments