comparison pilot/setup.sh @ 163:daf91a3bbee5 production v1.2.0

flow: Merged <release> 'v1.2.0' to <master> ('production').
author smith@nwoca.org
date Tue, 15 Aug 2017 21:59:23 +0100
parents ab4effbe8d43
children 29c7c4c4e891
comparison
equal deleted inserted replaced
141:06611703da29 163:daf91a3bbee5
1 #!/bin/bash
2 # Sets up a new district project based on SSDT default configuration in the current working directory.
3 #
4 # Usage:
5 #
6 # /data/preview/sampletown $ /ssdt/compose2/preview/setup.sh [usas,usps...]
7 #
8 # Will create a docker-compose.yml and .env file with default settings.
9 #
10 #
11 source "$(dirname "${BASH_SOURCE[0]}")/../scripts/.functions.sh"
12
13 md5calc() {
14 md5sum ${1} ;
15 }
16
17 md5verify() {
18 md5sum -c --status ${1} ;
19 }
20
21 genDBHash() {
22 echo $(date +%s%N | sha256sum | base64 | head -c 32 ; echo)
23 }
24
25 base=$(dirname "${BASH_SOURCE[0]}")
26 default_name=$(basename $PWD)
27
28 args="$1$2"
29
30 usas=""
31 usps=""
32
33 if [ "$args" == "" ] || [ -z "${args##*usas*}" ]
34 then
35 usas=1
36 fi
37
38 if [ "$args" == "" ] || [ -z "${args##*usps*}" ]
39 then
40 usps=1
41 fi
42
43 echo "Preparing '$(basename $PWD)' with default USxS configuration"
44
45 touch .env
46 source .env
47
48 if [ "$COMPOSE_PROJECT_NAME" == "" ]
49 then
50 read -e -p "Enter project name: <${default_name}> " answer
51 project_name=${answer:-$default_name}
52 echo "COMPOSE_PROJECT_NAME=${project_name}" >> .env
53 echo "set project name in .env file"
54 source .env
55 fi
56
57 if [ ! -e "docker-compose.yml" ]
58 then
59 create="OK"
60 elif [ -e ".docker-compose.md5" ]; then
61 md5verify ./.docker-compose.md5 && create="OK"
62 fi
63
64 if [ "$create" == "OK" ]
65 then
66 echo "# **** DO NOT MODIFY THIS FILE. ****" > ./docker-compose.yml
67 echo "# Place customizations in docker-compose.override.yml and .env" >> ./docker-compose.yml
68 echo "version: \"3.3\"" >> ./docker-compose.yml
69 echo "services:" >> ./docker-compose.yml
70
71 [ ! "$usas" == "" ] && cat $base/usas-services.yml >> ./docker-compose.yml
72
73 [ ! "$usps" == "" ] && cat $base/usps-services.yml >> ./docker-compose.yml
74
75 echo "volumes:" >> ./docker-compose.yml
76
77 if [ ! "$usas" == "" ]
78 then
79 echo " usasdata:" >> ./docker-compose.yml
80 [ "$USAS_DB_PASSWORD" == "" ] && echo "USAS_DB_PASSWORD=$(genDBHash)" >> ./.env
81 fi
82
83 if [ ! "$usps" == "" ]
84 then
85 echo " uspsdata:" >> ./docker-compose.yml
86 [ "$USPS_DB_PASSWORD" == "" ] && echo "USPS_DB_PASSWORD=$(genDBHash)" >> ./.env
87 fi
88
89 echo "" >> ./docker-compose.yml
90
91 md5calc ./docker-compose.yml > .docker-compose.md5
92
93 echo "created docker-compose.yml"
94
95 else
96 echo "
97
98 Error! docker-compose.yml file has been modified or checksum missing. Can not auto-apply update(s).
99 Move customizations to docker-compose.override.yml then delete the docker-compose.yml
100 "
101 fi
102
103 if [ "$USAS_APPLICATIONID" == "" ]
104 then
105 read -e -p "Generate USAS and USPS integration config? <Y/n> " answer
106 case $answer in
107 y | Y | yes | YES ) answer="y";;
108 n | N | no | NO ) answer="n";;
109 *) answer="y"
110 esac
111 if [ "$answer" == "y" ]
112 then
113 usas_id=${COMPOSE_PROJECT_NAME}-usas
114 usas_key=$(openssl rand -hex 32)
115 usps_id=${COMPOSE_PROJECT_NAME}-usps
116 usps_key=$(openssl rand -hex 32)
117 echo "USAS_APPLICATIONID=${usas_id}" >> .env
118 echo "USAS_APIKEY=$usas_key" >> .env
119 echo "USPS_APPLICATIONID=${usps_id}" >> .env
120 echo "USPS_APIKEY=$usps_key" >> .env
121 echo "Created integration API keys. Enable integration modules after applications start"
122 fi
123 fi
124
125 echo "Review or create a docker-compose.override.yml for custom settings."
126