Skip to content

Commit f54864c

Browse files
committed
[#876] make shell changes suggested by shellcheck
1 parent 91736a8 commit f54864c

30 files changed

+186
-126
lines changed

backend/server/restservice/middleware.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ func sseMiddleware(next http.Handler, eventCenter eventcenter.EventCenter) http.
129129
// Install a middleware that is serving Agent installer.
130130
func agentInstallerMiddleware(next http.Handler, staticFilesDir string) http.Handler {
131131
// Agent installer as Bash script.
132-
const agentInstallerScript = `#!/bin/bash
132+
const agentInstallerScript = `#!/bin/sh
133133
set -e -x
134134
135135
rm -f /tmp/isc-stork-agent.{deb,rpm,apk}

docker/images/stork.Dockerfile

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ RUN apt-get update \
6565
#############
6666

6767
# Install main dependencies
68-
FROM base AS prepare
68+
FROM base AS prepare
6969
WORKDIR /app/rakelib
7070
COPY rakelib/00_init.rake ./
7171
WORKDIR /app/rakelib/init_deps
@@ -218,7 +218,7 @@ RUN apt-get update \
218218
--no-install-recommends \
219219
curl=7.64.* \
220220
prometheus-node-exporter=0.17.* \
221-
default-mysql-client=1.0.* \
221+
default-mysql-client=1.0.* \
222222
postgresql-client=11+* \
223223
apt-transport-https=1.8.* \
224224
gnupg=2.2.* \
@@ -272,7 +272,7 @@ RUN [ "${KEA_PREMIUM}" != "premium" ] || ( \
272272
# for this stage.
273273
# hadolint ignore=DL3006
274274
FROM kea${KEA_PREMIUM}-base AS kea
275-
# Install agent
275+
# Install agent
276276
COPY --from=agent-builder /app/dist/agent /
277277
# Database
278278
WORKDIR /var/lib/db
@@ -284,7 +284,7 @@ ENV DB_HOST=172.20.0.115
284284
ENV DB_USER=kea
285285
ENV DB_PASSWORD=kea
286286
ENV DB_NAME=kea
287-
ENTRYPOINT [ "/bin/bash", "-c", \
287+
ENTRYPOINT [ "/bin/sh", "-c", \
288288
"/var/lib/db/init_db.sh && supervisord -c /etc/supervisor/supervisord.conf" ]
289289
# Incoming port
290290
EXPOSE 8080
@@ -324,7 +324,7 @@ RUN apt-get update \
324324
&& mkdir -p /var/lib/stork-agent \
325325
&& chown bind:bind /var/lib/stork-agent \
326326
&& chmod 755 /var/lib/stork-agent
327-
# Install agent
327+
# Install agent
328328
COPY --from=agent-builder /app/dist/agent/usr/bin /usr/bin
329329
# Use dedicated bind user
330330
USER bind

docker/init/init_db.sh

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
#!/bin/bash
2+
3+
set -eu
4+
25
# Script directory
3-
__dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6+
__dir="$(cd "$(dirname "${0}")" && pwd)"
47

58
# Select the specific script. It must be done in a shell script,
69
# not in the Dockerfile, An environment variable substitution in
710
# Dockerfile is done during the build phase, but in the shell script
811
# in runtime.
9-
if [ "$DB_TYPE" == "pgsql" ] || [ "$DB_TYPE" == "mysql" ]; then
10-
source ${__dir}/init_${DB_TYPE}_db.sh
12+
if [ "$DB_TYPE" = "pgsql" ] || [ "$DB_TYPE" = "mysql" ]; then
13+
# shellcheck source=./docker/init/init_mysql_db.sh
14+
# shellcheck source=./docker/init/init_pgsql_db.sh
15+
. "${__dir}/init_${DB_TYPE}_db.sh"
1116
elif [ "$DB_TYPE" != "none" ]; then
1217
echo "Unknown DB_TYPE value: ${DB_TYPE}"
1318
exit 1

docker/init/init_mysql_db.sh

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
#!/bin/bash
2+
3+
set -eu
4+
15
echo "Database type: ${DB_TYPE}"
26

37
until mysqladmin ping -h"${DB_HOST}" --silent;
@@ -10,20 +14,21 @@ echo "CREATE USER"
1014

1115
create_user_query="CREATE USER IF NOT EXISTS '${DB_USER}'@'%' IDENTIFIED BY '${DB_PASSWORD}';"
1216
mysql \
13-
--user=${DB_ROOT_USER} \
14-
--password=${DB_ROOT_PASSWORD} \
15-
--host=${DB_HOST} \
16-
-e "$create_user_query"
17+
--user="${DB_ROOT_USER}" \
18+
--password="${DB_ROOT_PASSWORD}" \
19+
--host="${DB_HOST}" \
20+
-e "${create_user_query}"
1721

1822
echo "Checking if the database exists"
1923

24+
exist_query="USE ${DB_NAME}"
25+
set +e
2026
mysql \
21-
--user=${DB_ROOT_USER} \
22-
--password=${DB_ROOT_PASSWORD} \
23-
--host=${DB_HOST} \
24-
-e "$exist_query" \
25-
${DB_NAME}
26-
27+
--user="${DB_ROOT_USER}" \
28+
--password="${DB_ROOT_PASSWORD}" \
29+
--host="${DB_HOST}" \
30+
-e "${exist_query}" \
31+
"${DB_NAME}"
2732
has_db=$?
2833
set -e
2934

@@ -32,36 +37,38 @@ then
3237
echo "Create the database"
3338
create_db_query="CREATE DATABASE ${DB_NAME};"
3439
mysql \
35-
--user=${DB_ROOT_USER} \
36-
--password=${DB_ROOT_PASSWORD} \
37-
--host=${DB_HOST} \
40+
--user="${DB_ROOT_USER}" \
41+
--password="${DB_ROOT_PASSWORD}" \
42+
--host="${DB_HOST}" \
3843
-e "$create_db_query"
3944
fi
4045

4146
grant_query="GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_USER}'@'%';"
4247
mysql \
43-
--user=${DB_ROOT_USER} \
44-
--password=${DB_ROOT_PASSWORD} \
45-
--host=${DB_HOST} \
46-
-e "$grant_query"
48+
--user="${DB_ROOT_USER}" \
49+
--password="${DB_ROOT_PASSWORD}" \
50+
--host="${DB_HOST}" \
51+
-e "${grant_query}"
4752

4853
if [ $has_db -eq 0 ]
4954
then
5055
exit 0
5156
fi
5257

5358
echo "Initializing the database"
54-
kea-admin db-init ${DB_TYPE} \
55-
-u ${DB_USER} \
56-
-p ${DB_PASSWORD} \
57-
-n ${DB_NAME} \
58-
-h ${DB_HOST}
59+
kea-admin db-init "${DB_TYPE}" \
60+
-u "${DB_USER}" \
61+
-p "${DB_PASSWORD}" \
62+
-n "${DB_NAME}" \
63+
-h "${DB_HOST}"
5964

6065
echo "Seed database"
61-
seed_file="${BASH_SOURCE%/*}/init_mysql_query.sql"
66+
path=$(dirname "${BASH_SOURCE[0]}")
67+
seed_file="${path}/init_mysql_query.sql"
6268

6369
mysql \
64-
--user=${DB_ROOT_USER} \
65-
--password=${DB_ROOT_PASSWORD} \
66-
--host=${DB_HOST} \
67-
${DB_NAME} < $seed_file
70+
--user="${DB_ROOT_USER}" \
71+
--password="${DB_ROOT_PASSWORD}" \
72+
--host="${DB_HOST}" \
73+
"${DB_NAME}" \
74+
< "${seed_file}"

docker/init/init_pgsql_db.sh

Lines changed: 31 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
1+
#!/bin/bash
2+
3+
set -eu
4+
15
echo "Database type: ${DB_TYPE}"
26

3-
until PGPASSWORD=${DB_ROOT_PASSWORD} psql -h ${DB_HOST} -U ${DB_ROOT_USER} -c "SELECT 1" > /dev/null 2>&1;
7+
until PGPASSWORD=${DB_ROOT_PASSWORD} psql -h "${DB_HOST}" -U "${DB_ROOT_USER}" -c "SELECT 1" > /dev/null 2>&1;
48
do
59
echo "Waiting for database connection..."
610
sleep 5
@@ -11,19 +15,20 @@ echo "CREATE USER"
1115
create_user_query="CREATE USER ${DB_USER} WITH PASSWORD '${DB_PASSWORD}';"
1216
PGPASSWORD=${DB_ROOT_PASSWORD} \
1317
psql \
14-
-U ${DB_ROOT_USER} \
15-
-h ${DB_HOST} \
16-
-c "$create_user_query"
18+
-U "${DB_ROOT_USER}" \
19+
-h "${DB_HOST}" \
20+
-c "${create_user_query}"
1721

1822
echo "Checking if the database exists"
1923

24+
exist_query="\c ${DB_NAME}"
25+
set +e
2026
PGPASSWORD=${DB_ROOT_PASSWORD} \
2127
psql \
22-
-U ${DB_ROOT_USER} \
23-
-h ${DB_HOST} \
24-
-d ${DB_NAME} \
25-
-c "$exist_query"
26-
28+
-U "${DB_ROOT_USER}" \
29+
-h "${DB_HOST}" \
30+
-d "${DB_NAME}" \
31+
-c "${exist_query}"
2732
has_db=$?
2833
set -e
2934

@@ -33,35 +38,37 @@ then
3338
create_db_query="CREATE DATABASE ${DB_NAME};"
3439
PGPASSWORD=${DB_ROOT_PASSWORD} \
3540
psql \
36-
-U ${DB_ROOT_USER} \
37-
-h ${DB_HOST} \
38-
-c "$create_db_query"
41+
-U "${DB_ROOT_USER}" \
42+
-h "${DB_HOST}" \
43+
-c "${create_db_query}"
3944
fi
4045

4146
grant_query="GRANT ALL PRIVILEGES ON DATABASE ${DB_NAME} TO ${DB_USER};"
4247
PGPASSWORD=${DB_ROOT_PASSWORD} \
4348
psql \
44-
-U ${DB_ROOT_USER} \
45-
-h ${DB_HOST} \
46-
-c "$grant_query"
49+
-U "${DB_ROOT_USER}" \
50+
-h "${DB_HOST}" \
51+
-c "${grant_query}"
4752

4853
if [ $has_db -eq 0 ]
4954
then
5055
exit 0
5156
fi
5257

5358
echo "Initializing the database"
54-
kea-admin db-init ${DB_TYPE} \
55-
-u ${DB_USER} \
56-
-p ${DB_PASSWORD} \
57-
-n ${DB_NAME} \
58-
-h ${DB_HOST}
59+
kea-admin db-init "${DB_TYPE}" \
60+
-u "${DB_USER}" \
61+
-p "${DB_PASSWORD}" \
62+
-n "${DB_NAME}" \
63+
-h "${DB_HOST}"
5964

6065
echo "Seed database"
61-
seed_file="${BASH_SOURCE%/*}/init_pgsql_query.sql"
66+
path=$(dirname "${BASH_SOURCE[0]}")
67+
seed_file="${path}/init_pgsql_query.sql"
6268

6369
PGPASSWORD=${DB_ROOT_PASSWORD} \
6470
psql \
65-
-U ${DB_ROOT_USER} \
66-
-h ${DB_HOST} \
67-
-d ${DB_NAME} < $seed_file
71+
-U "${DB_ROOT_USER}" \
72+
-h "${DB_HOST}" \
73+
-d "${DB_NAME}" \
74+
< "${seed_file}"
Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,27 @@
11
#!/bin/sh
22

3-
set -e
3+
set -eu
44

55
# create folders for storing certs and agent token,
66
# they should be available to owner ie. stork-agent user
77
home_dir=/var/lib/stork-agent
8-
mkdir -p -m 700 $home_dir/certs
9-
mkdir -p -m 700 $home_dir/tokens
8+
mkdir -p "${home_dir}/certs"
9+
mkdir -p "${home_dir}/tokens"
10+
chmod 700 "${home_dir}/certs"
11+
chmod 700 "${home_dir}/tokens"
1012

1113
addgroup -S stork-agent >/dev/null
12-
adduser -h $home_dir -D -S -H -g "Stork Agent User" -G stork-agent stork-agent >/dev/null
14+
adduser -h "${home_dir}" -D -S -H -g "Stork Agent User" -G stork-agent stork-agent >/dev/null
1315

1416
# add stork-agent user to bind so it can read its config files
15-
if [ $(getent group bind) ]; then
17+
if getent group bind > /dev/null; then
1618
addgroup stork-agent bind
1719
fi
1820

1921
# add stork-agent user to kea so it can read its config files
20-
if [ $(getent group _kea) ]; then
22+
if getent group _kea > /dev/null; then
2123
addgroup stork-agent _kea
2224
fi
2325

2426
# change ownership of all folders and files in home dir to stork-agent user
25-
chown -R stork-agent $home_dir
27+
chown -R stork-agent "${home_dir}"

etc/hooks/apk/isc-stork-agent.postrm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
#!/bin/sh
22

3+
set -eu
4+
35
deluser stork-agent >/dev/null || /bin/true

etc/hooks/apk/isc-stork-agent.prerm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
#!/bin/sh
22

3+
set -eu
4+
35
groups stork-agent | xargs -n 1 | grep -v stork-agent | xargs -r -n 1 delgroup stork-agent
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
#!/bin/sh
22

3-
set -e
3+
set -eu
4+
5+
home_dir=/var/lib/stork-server
46

57
addgroup -S stork-server >/dev/null
6-
adduser -h $home_dir -D -S -H -g "Stork Server User" -G stork-server stork-server >/dev/null
8+
adduser -h "${home_dir}" -D -S -H -g "Stork Server User" -G stork-server stork-server >/dev/null

etc/hooks/apk/isc-stork-server.postrm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
#!/bin/sh
22

3+
set -eu
4+
35
deluser stork-server >/dev/null || /bin/true
Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,29 @@
11
#!/bin/sh
22

3-
set -e
3+
set -eu
44

55
# create folders for storing certs and agent token,
66
# they should be available to owner ie. stork-agent user
77
home_dir=/var/lib/stork-agent
8-
mkdir -p -m 700 $home_dir/certs
9-
mkdir -p -m 700 $home_dir/tokens
8+
mkdir -p "${home_dir}/certs"
9+
mkdir -p "${home_dir}/tokens"
10+
chmod 700 "${home_dir}/certs"
11+
chmod 700 "${home_dir}/tokens"
1012

1113
# add stork-agent user
1214
adduser --quiet --system --group --home $home_dir \
1315
--no-create-home --disabled-password --disabled-login \
1416
--gecos "Stork Agent User" stork-agent >/dev/null
1517

1618
# add stork-agent user to bind so it can read its config files
17-
if [ $(getent group bind) ]; then
19+
if getent group bind > /dev/null; then
1820
usermod -aG bind stork-agent
1921
fi
2022

2123
# add stork-agent user to kea so it can read its config files
22-
if [ $(getent group _kea) ]; then
24+
if getent group _kea > /dev/null; then
2325
usermod -aG _kea stork-agent
2426
fi
2527

2628
# change ownership of all folders and files in home dir to stork-agent user
27-
chown -R stork-agent $home_dir
29+
chown -R stork-agent "${home_dir}"

etc/hooks/deb/isc-stork-agent.postrm

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
11
#!/bin/sh
22

3+
set -eu
4+
35
deluser --system stork-agent >/dev/null || /bin/true

etc/hooks/deb/isc-stork-agent.prerm

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
#!/bin/sh
22

3+
set -eu
4+
35
has_active_systemd=0
4-
if [ -x "$(command -v systemctl)" ]; then
5-
status=$(systemctl is-system-running)
6-
if [ $status = "running" ] || [ $status = "degraded" ] || [ $status = "maintenance" ]; then
6+
if command -v systemctl > /dev/null; then
7+
status=$(systemctl is-system-running || true)
8+
if [ "${status}" = "running" ] || [ "${status}" = "degraded" ] || [ "${status}" = "maintenance" ]; then
79
has_active_systemd=1
810
fi
911
fi

etc/hooks/deb/isc-stork-server.postinst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#!/bin/sh
22

3-
set -e
3+
set -eu
44

55
adduser --quiet --system --group --home /var/lib/ \
66
--no-create-home --disabled-password --disabled-login \

0 commit comments

Comments
 (0)