|
10 | 10 | ## Terminate with an error message
|
11 | 11 | ##
|
12 | 12 | function abort() {
|
13 |
| - echo "Error - $*" |
14 |
| - exit 1 |
| 13 | + echo "Error - $*" |
| 14 | + exit 1 |
15 | 15 | }
|
16 | 16 |
|
17 | 17 | : "${OGG_DEPLOYMENT:=Local}"
|
@@ -40,143 +40,143 @@ export OGG_DEPLOYMENT OGG_ADMIN NGINX_CRT NGINX_KEY
|
40 | 40 | ## - at least one digit character
|
41 | 41 | ##
|
42 | 42 | function generatePassword {
|
43 |
| - if [[ -n "${OGG_ADMIN_PWD}" || -d "${OGG_DEPLOYMENT_HOME}/Deployment/etc" ]]; then |
44 |
| - return |
45 |
| - fi |
46 |
| - local password |
47 |
| - password="$(openssl rand -base64 9)-$(openssl rand -base64 3)" |
48 |
| - if [[ "${password}" != "${password/[A-Z]/_}" && |
49 |
| - "${password}" != "${password/[a-z]/_}" && |
50 |
| - "${password}" != "${password/[0-9]/_}" ]]; then |
51 |
| - export OGG_ADMIN_PWD="${password}" |
52 |
| - echo "----------------------------------------------------------------------------------" |
53 |
| - echo "-- Password for OGG administrative user '${OGG_ADMIN}' is '${OGG_ADMIN_PWD}'" |
54 |
| - echo "----------------------------------------------------------------------------------" |
55 |
| - return |
56 |
| - fi |
57 |
| - generatePassword |
| 43 | + if [[ -n "${OGG_ADMIN_PWD}" || -d "${OGG_DEPLOYMENT_HOME}/Deployment/etc" ]]; then |
| 44 | + return |
| 45 | + fi |
| 46 | + local password |
| 47 | + password="$(openssl rand -base64 9)-$(openssl rand -base64 3)" |
| 48 | + if [[ "${password}" != "${password/[A-Z]/_}" && |
| 49 | + "${password}" != "${password/[a-z]/_}" && |
| 50 | + "${password}" != "${password/[0-9]/_}" ]]; then |
| 51 | + export OGG_ADMIN_PWD="${password}" |
| 52 | + echo "----------------------------------------------------------------------------------" |
| 53 | + echo "-- Password for OGG administrative user '${OGG_ADMIN}' is '${OGG_ADMIN_PWD}'" |
| 54 | + echo "----------------------------------------------------------------------------------" |
| 55 | + return |
| 56 | + fi |
| 57 | + generatePassword |
58 | 58 | }
|
59 | 59 |
|
60 | 60 | ##
|
61 | 61 | ## Locate the Java installation and set JAVA_HOME
|
62 | 62 | ##
|
63 | 63 | function locate_java() {
|
64 |
| - [[ -n "${JAVA_HOME}" ]] && return 0 |
| 64 | + [[ -n "${JAVA_HOME}" ]] && return 0 |
65 | 65 |
|
66 |
| - local java |
67 |
| - java=$(command -v java) |
68 |
| - [[ -z "${java}" ]] && abort "Java installation not found" |
| 66 | + local java |
| 67 | + java=$(command -v java) |
| 68 | + [[ -z "${java}" ]] && abort "Java installation not found" |
69 | 69 |
|
70 |
| - JAVA_HOME="$(dirname "$(dirname "$(readlink -f "${java}")")")" |
71 |
| - export JAVA_HOME |
| 70 | + JAVA_HOME="$(dirname "$(dirname "$(readlink -f "${java}")")")" |
| 71 | + export JAVA_HOME |
72 | 72 | }
|
73 | 73 |
|
74 | 74 | ##
|
75 | 75 | ## Locate the shared library libjvm.so and set LD_LIBRARY_PATH
|
76 | 76 | ##
|
77 | 77 | function locate_lib_jvm() {
|
78 |
| - [[ -z "${JAVA_HOME}" ]] && abort "Java installation not found" |
79 |
| - |
80 |
| - local libjvm |
81 |
| - libjvm="$(find "${JAVA_HOME}" -name libjvm.so | head -1)" |
82 |
| - if [ -z "${libjvm}" ]; then |
83 |
| - echo "Warning: The shared library libjvm.so cannot be located." |
84 |
| - else |
85 |
| - local JVM_LIBRARY_PATH |
86 |
| - JVM_LIBRARY_PATH="$(dirname "${libjvm}")" |
87 |
| - export LD_LIBRARY_PATH=$JVM_LIBRARY_PATH:$LD_LIBRARY_PATH |
88 |
| - fi |
| 78 | + [[ -z "${JAVA_HOME}" ]] && abort "Java installation not found" |
| 79 | + |
| 80 | + local libjvm |
| 81 | + libjvm="$(find "${JAVA_HOME}" -name libjvm.so | head -1)" |
| 82 | + if [ -z "${libjvm}" ]; then |
| 83 | + echo "Warning: The shared library libjvm.so cannot be located." |
| 84 | + else |
| 85 | + local JVM_LIBRARY_PATH |
| 86 | + JVM_LIBRARY_PATH="$(dirname "${libjvm}")" |
| 87 | + export LD_LIBRARY_PATH=$JVM_LIBRARY_PATH:$LD_LIBRARY_PATH |
| 88 | + fi |
89 | 89 | }
|
90 | 90 |
|
91 | 91 | ##
|
92 | 92 | ## Return a string used for running a process as the 'ogg' user
|
93 | 93 | ##
|
94 | 94 | function run_as_ogg() {
|
95 |
| - local user="ogg" |
96 |
| - local uid gid |
97 |
| - uid="$(id -u "${user}")" |
98 |
| - gid="$(id -g "${user}")" |
99 |
| - echo "setpriv --ruid ${uid} --euid ${uid} --groups ${gid} --rgid ${gid} --egid ${gid} -- " |
| 95 | + local user="ogg" |
| 96 | + local uid gid |
| 97 | + uid="$(id -u "${user}")" |
| 98 | + gid="$(id -g "${user}")" |
| 99 | + echo "setpriv --ruid ${uid} --euid ${uid} --groups ${gid} --rgid ${gid} --egid ${gid} -- " |
100 | 100 | }
|
101 | 101 |
|
102 | 102 | ##
|
103 | 103 | ## Create and set permissions for directories for the deployment
|
104 | 104 | ##
|
105 | 105 | function setup_deployment_directories() {
|
106 |
| - rm -fr "${OGG_DEPLOYMENT_HOME}"/Deployment/var/{run,temp,lib/db} \ |
107 |
| - "${OGG_TEMPORARY_FILES}"/{run,temp} |
108 |
| - mkdir -p "${OGG_TEMPORARY_FILES}"/{run,temp,db} \ |
109 |
| - "${OGG_DEPLOYMENT_HOME}"/Deployment/var/lib |
110 |
| - ln -s "${OGG_TEMPORARY_FILES}"/run "${OGG_DEPLOYMENT_HOME}"/Deployment/var/run |
111 |
| - ln -s "${OGG_TEMPORARY_FILES}"/temp "${OGG_DEPLOYMENT_HOME}"/Deployment/var/temp |
112 |
| - ln -s "${OGG_TEMPORARY_FILES}"/db "${OGG_DEPLOYMENT_HOME}"/Deployment/var/lib/db |
113 |
| - |
114 |
| - chown ogg:ogg "${OGG_DEPLOYMENT_HOME}" "${OGG_TEMPORARY_FILES}" |
115 |
| - chmod 0750 "${OGG_DEPLOYMENT_HOME}" "${OGG_TEMPORARY_FILES}" |
116 |
| - find "${OGG_DEPLOYMENT_HOME}" "${OGG_TEMPORARY_FILES}" -mindepth 1 -maxdepth 1 -not -name '.*' -exec \ |
117 |
| - chown -R ogg:ogg {} \; |
| 106 | + rm -fr "${OGG_DEPLOYMENT_HOME}"/Deployment/var/{run,temp,lib/db} \ |
| 107 | + "${OGG_TEMPORARY_FILES}"/{run,temp} |
| 108 | + mkdir -p "${OGG_TEMPORARY_FILES}"/{run,temp,db} \ |
| 109 | + "${OGG_DEPLOYMENT_HOME}"/Deployment/var/lib |
| 110 | + ln -s "${OGG_TEMPORARY_FILES}"/run "${OGG_DEPLOYMENT_HOME}"/Deployment/var/run |
| 111 | + ln -s "${OGG_TEMPORARY_FILES}"/temp "${OGG_DEPLOYMENT_HOME}"/Deployment/var/temp |
| 112 | + ln -s "${OGG_TEMPORARY_FILES}"/db "${OGG_DEPLOYMENT_HOME}"/Deployment/var/lib/db |
| 113 | + |
| 114 | + chown ogg:ogg "${OGG_DEPLOYMENT_HOME}" "${OGG_TEMPORARY_FILES}" |
| 115 | + chmod 0750 "${OGG_DEPLOYMENT_HOME}" "${OGG_TEMPORARY_FILES}" |
| 116 | + find "${OGG_DEPLOYMENT_HOME}" "${OGG_TEMPORARY_FILES}" -mindepth 1 -maxdepth 1 -not -name '.*' -exec \ |
| 117 | + chown -R ogg:ogg {} \; |
118 | 118 | }
|
119 | 119 |
|
120 | 120 | ##
|
121 | 121 | ## Run custom scripts in the container before and after GoldenGate starts
|
122 | 122 | ##
|
123 | 123 | function run_user_scripts {
|
124 |
| - local scripts="${1}" |
125 |
| - while read -r script; do |
126 |
| - case "${script}" in |
127 |
| - *.sh) |
128 |
| - echo "Running script '${script}'" |
129 |
| - # shellcheck disable=SC1090 |
130 |
| - source "${script}" |
131 |
| - ;; |
132 |
| - *) |
133 |
| - echo "Ignoring '${script}'" |
134 |
| - ;; |
135 |
| - esac |
136 |
| - done < <(find "${scripts}" -type f | sort) |
| 124 | + local scripts="${1}" |
| 125 | + while read -r script; do |
| 126 | + case "${script}" in |
| 127 | + *.sh) |
| 128 | + echo "Running script '${script}'" |
| 129 | + # shellcheck disable=SC1090 |
| 130 | + source "${script}" |
| 131 | + ;; |
| 132 | + *) |
| 133 | + echo "Ignoring '${script}'" |
| 134 | + ;; |
| 135 | + esac |
| 136 | + done < <(find "${scripts}" -type f | sort) |
137 | 137 | }
|
138 | 138 |
|
139 | 139 | ##
|
140 | 140 | ## Initialize and start the OGG installation
|
141 | 141 | ##
|
142 | 142 | function start_ogg() {
|
143 |
| - $(run_as_ogg) python3 /usr/local/bin/deployment-init.py |
144 |
| - $(run_as_ogg) tail -F "${OGG_DEPLOYMENT_HOME}"/ServiceManager/var/log/ServiceManager.log & |
145 |
| - ogg_pid=$! |
| 143 | + $(run_as_ogg) python3 /usr/local/bin/deployment-init.py |
| 144 | + $(run_as_ogg) tail -F "${OGG_DEPLOYMENT_HOME}"/ServiceManager/var/log/ServiceManager.log & |
| 145 | + ogg_pid=$! |
146 | 146 | }
|
147 | 147 |
|
148 | 148 | ##
|
149 | 149 | ## Start the reverse proxy daemon
|
150 | 150 | ##
|
151 | 151 | function start_nginx() {
|
152 |
| - [[ ! -f "${NGINX_CRT}" || ! -f "${NGINX_KEY}" ]] && { |
153 |
| - /usr/local/bin/create-certificate.sh |
154 |
| - } |
155 |
| - replace-variables.sh /etc/nginx/*.conf |
156 |
| - /usr/sbin/nginx -t |
157 |
| - /usr/sbin/nginx |
| 152 | + [[ ! -f "${NGINX_CRT}" || ! -f "${NGINX_KEY}" ]] && { |
| 153 | + /usr/local/bin/create-certificate.sh |
| 154 | + } |
| 155 | + replace-variables.sh /etc/nginx/*.conf |
| 156 | + /usr/sbin/nginx -t |
| 157 | + /usr/sbin/nginx |
158 | 158 | }
|
159 | 159 |
|
160 | 160 | ##
|
161 | 161 | ## Termination handler
|
162 | 162 | ##
|
163 | 163 | function termination_handler() {
|
164 |
| - [[ -z "${ogg_pid}" ]] || { |
165 |
| - kill "${ogg_pid}" |
166 |
| - unset ogg_pid |
167 |
| - } |
168 |
| - [[ ! -f "/var/run/nginx.pid" ]] || { |
169 |
| - /usr/sbin/nginx -s stop |
170 |
| - } |
171 |
| - exit 0 |
| 164 | + [[ -z "${ogg_pid}" ]] || { |
| 165 | + kill "${ogg_pid}" |
| 166 | + unset ogg_pid |
| 167 | + } |
| 168 | + [[ ! -f "/var/run/nginx.pid" ]] || { |
| 169 | + /usr/sbin/nginx -s stop |
| 170 | + } |
| 171 | + exit 0 |
172 | 172 | }
|
173 | 173 |
|
174 | 174 | ##
|
175 | 175 | ## Signal Handling for this script
|
176 | 176 | ##
|
177 | 177 | function signal_handling() {
|
178 |
| - trap - SIGTERM SIGINT |
179 |
| - trap termination_handler SIGTERM SIGINT |
| 178 | + trap - SIGTERM SIGINT |
| 179 | + trap termination_handler SIGTERM SIGINT |
180 | 180 | }
|
181 | 181 |
|
182 | 182 | ##
|
|
0 commit comments