Skip to content

Commit e11d40c

Browse files
committed
Fix shellcheck warnings in selenium component scripts
Fix all shellcheck warnings and errors in bin/components/* scripts: - Add missing shebangs to 4 files (devkeycloak-proxy, forward-proxy, proxy) - Quote ~200+ variable expansions to prevent globbing/word splitting - Fix array handling (use mapfile instead of command substitution) - Replace legacy backticks with $() syntax - Remove unused variables (SCRIPT) - Fix undefined variable reference (component -> "rabbitmq") - Export RABBITMQ_TEST_DIR for external script usage All 15 component scripts now pass shellcheck with zero warnings.
1 parent d06c0f7 commit e11d40c

File tree

15 files changed

+177
-175
lines changed

15 files changed

+177
-175
lines changed

selenium/bin/components/devkeycloak

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,13 @@ KEYCLOAK_DOCKER_IMAGE=${KEYCLOAK_DOCKER_IMAGE:-quay.io/keycloak/keycloak:20.0}
44

55
init_devkeycloak() {
66
DEVKEYCLOAK_CONFIG_PATH=${DEVKEYCLOAK_CONFIG_PATH:-multi-oauth/devkeycloak}
7-
DEVKEYCLOAK_CONFIG_DIR=$(realpath ${TEST_DIR}/${DEVKEYCLOAK_CONFIG_PATH})
7+
DEVKEYCLOAK_CONFIG_DIR=$(realpath "${TEST_DIR}/${DEVKEYCLOAK_CONFIG_PATH}")
88

99
print "> DEVKEYCLOAK_CONFIG_DIR: ${DEVKEYCLOAK_CONFIG_DIR}"
1010
print "> DEVKEYCLOAK_URL: ${DEVKEYCLOAK_URL}"
1111
print "> DEVKEYCLOAK_DOCKER_IMAGE: ${KEYCLOAK_DOCKER_IMAGE}"
1212

13-
generate-ca-server-client-kpi devkeycloak $DEVKEYCLOAK_CONFIG_DIR
13+
generate-ca-server-client-kpi devkeycloak "$DEVKEYCLOAK_CONFIG_DIR"
1414

1515
}
1616
ensure_devkeycloak() {
@@ -29,26 +29,26 @@ start_devkeycloak() {
2929

3030
MOUNT_DEVKEYCLOAK_CONF_DIR=$CONF_DIR/devkeycloak
3131

32-
mkdir -p $MOUNT_DEVKEYCLOAK_CONF_DIR
33-
${BIN_DIR}/gen-keycloak-json ${DEVKEYCLOAK_CONFIG_DIR} "dev-realm" $ENV_FILE $MOUNT_DEVKEYCLOAK_CONF_DIR/dev-realm.json
32+
mkdir -p "$MOUNT_DEVKEYCLOAK_CONF_DIR"
33+
"${BIN_DIR}/gen-keycloak-json" "${DEVKEYCLOAK_CONFIG_DIR}" "dev-realm" "$ENV_FILE" "$MOUNT_DEVKEYCLOAK_CONF_DIR/dev-realm.json"
3434
print "> EFFECTIVE DEVKEYCLOAK_CONFIG_FILE: $MOUNT_DEVKEYCLOAK_CONF_DIR/dev-realm.json"
35-
cp ${DEVKEYCLOAK_CONFIG_DIR}/*.pem $MOUNT_DEVKEYCLOAK_CONF_DIR
35+
cp "${DEVKEYCLOAK_CONFIG_DIR}"/*.pem "$MOUNT_DEVKEYCLOAK_CONF_DIR"
3636

3737
docker run \
3838
--detach \
3939
--name devkeycloak \
40-
--net ${DOCKER_NETWORK} \
40+
--net "${DOCKER_NETWORK}" \
4141
--publish 8082:8080 \
4242
--publish 8442:8442 \
4343
--env KEYCLOAK_ADMIN=admin \
4444
--env KEYCLOAK_ADMIN_PASSWORD=admin \
45-
--mount type=bind,source=${MOUNT_DEVKEYCLOAK_CONF_DIR},target=/opt/keycloak/data/import/ \
46-
${KEYCLOAK_DOCKER_IMAGE} start-dev --import-realm \
45+
--mount type=bind,source="${MOUNT_DEVKEYCLOAK_CONF_DIR}",target=/opt/keycloak/data/import/ \
46+
"${KEYCLOAK_DOCKER_IMAGE}" start-dev --import-realm \
4747
--https-certificate-file=/opt/keycloak/data/import/server_devkeycloak_certificate.pem \
4848
--https-certificate-key-file=/opt/keycloak/data/import/server_devkeycloak_key.pem \
4949
--hostname=devkeycloak --hostname-admin=devkeycloak --https-port=8442
5050

51-
wait_for_oidc_endpoint devkeycloak $DEVKEYCLOAK_URL $MOUNT_DEVKEYCLOAK_CONF_DIR/ca_certificate.pem
51+
wait_for_oidc_endpoint devkeycloak "$DEVKEYCLOAK_URL" "$MOUNT_DEVKEYCLOAK_CONF_DIR/ca_certificate.pem"
5252
end "devkeycloak is ready"
5353
print " Note: If you modify devkeycloak configuration, make sure to run the following command to export the configuration."
5454
print " docker exec -it devkeycloak /opt/keycloak/bin/kc.sh export --users realm_file --realm test --dir /opt/keycloak/data/import/"

selenium/bin/components/devkeycloak-proxy

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#!/usr/bin/env bash
2+
13
HTTPD_DOCKER_IMAGE=${HTTPD_DOCKER_IMAGE:-httpd:latest}
24

35
ensure_devkeycloak-proxy() {
@@ -26,18 +28,18 @@ start_devkeycloak-proxy() {
2628

2729
MOUNT_HTTPD_CONFIG_DIR=$CONF_DIR/httpd
2830

29-
mkdir -p $MOUNT_HTTPD_CONFIG_DIR
30-
${BIN_DIR}/gen-httpd-conf ${HTTPD_CONFIG_DIR} $ENV_FILE $MOUNT_HTTPD_CONFIG_DIR/httpd.conf
31+
mkdir -p "$MOUNT_HTTPD_CONFIG_DIR"
32+
"${BIN_DIR}/gen-httpd-conf" "${HTTPD_CONFIG_DIR}" "$ENV_FILE" "$MOUNT_HTTPD_CONFIG_DIR/httpd.conf"
3133
print "> EFFECTIVE HTTPD_CONFIG_FILE: $MOUNT_HTTPD_CONFIG_DIR/httpd.conf"
32-
cp ${HTTPD_CONFIG_DIR}/.htpasswd $MOUNT_HTTPD_CONFIG_DIR
34+
cp "${HTTPD_CONFIG_DIR}/.htpasswd" "$MOUNT_HTTPD_CONFIG_DIR"
3335

3436
docker run \
3537
--detach \
3638
--name devkeycloak-proxy \
37-
--net ${DOCKER_NETWORK} \
39+
--net "${DOCKER_NETWORK}" \
3840
--publish 9092:9092 \
3941
--mount "type=bind,source=${MOUNT_HTTPD_CONFIG_DIR},target=/usr/local/apache2/conf" \
40-
${HTTPD_DOCKER_IMAGE}
42+
"${HTTPD_DOCKER_IMAGE}"
4143

4244
#wait_for_url $OAUTH_PROVIDER_URL ${FORWARD_PROXY_URL}
4345
wait_for_message devkeycloak-proxy "initializing worker proxy:forward local"

selenium/bin/components/fakeportal

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ init_fakeportal() {
2222
RABBITMQ_HOST=${RABBITMQ_HOST:-proxy:9090}
2323
RABBITMQ_HOST_FOR_FAKEPORTAL=${RABBITMQ_HOST_FOR_FAKEPORTAL:-rabbitmq:15672}
2424

25-
RABBITMQ_URL=$(calculate_rabbitmq_url $RABBITMQ_HOST)
26-
RABBITMQ_URL_FOR_FAKEPORTAL=$(calculate_rabbitmq_url $RABBITMQ_HOST_FOR_FAKEPORTAL)
25+
RABBITMQ_URL=$(calculate_rabbitmq_url "$RABBITMQ_HOST")
26+
RABBITMQ_URL_FOR_FAKEPORTAL=$(calculate_rabbitmq_url "$RABBITMQ_HOST_FOR_FAKEPORTAL")
2727

2828
print "> FAKEPORTAL_URL: ${FAKEPORTAL_URL}"
2929
print "> UAA_URL_FOR_FAKEPORTAL: ${UAA_URL_FOR_FAKEPORTAL}"
@@ -40,24 +40,24 @@ start_fakeportal() {
4040

4141
init_fakeportal
4242
kill_container_if_exist fakeportal
43-
mocha_test_tag=($(md5sum $SELENIUM_ROOT_FOLDER/package.json))
43+
mapfile -t mocha_test_tag < <(md5sum "$SELENIUM_ROOT_FOLDER/package.json")
4444

4545
docker run \
4646
--detach \
4747
--name fakeportal \
48-
--net ${DOCKER_NETWORK} \
48+
--net "${DOCKER_NETWORK}" \
4949
--publish 3000:3000 \
5050
--env PORT=3000 \
5151
--env RABBITMQ_URL="${RABBITMQ_URL_FOR_FAKEPORTAL}" \
5252
--env PROXIED_RABBITMQ_URL="${RABBITMQ_URL}" \
5353
--env IDP_TOKEN_ENDPOINT="${IDP_TOKEN_ENDPOINT}" \
5454
--env CLIENT_ID="${CLIENT_ID}" \
5555
--env CLIENT_SECRET="${CLIENT_SECRET}" \
56-
--env NODE_EXTRA_CA_CERTS=/etc/${IDP}/ca_${IDP}_certificate.pem \
57-
-v ${TEST_CONFIG_DIR}/${IDP}:/etc/${IDP} \
58-
-v ${FAKEPORTAL_DIR}:/code/fakeportal \
59-
mocha-test:${mocha_test_tag} run fakeportal
56+
--env NODE_EXTRA_CA_CERTS="/etc/${IDP}/ca_${IDP}_certificate.pem" \
57+
-v "${TEST_CONFIG_DIR}/${IDP}:/etc/${IDP}" \
58+
-v "${FAKEPORTAL_DIR}:/code/fakeportal" \
59+
mocha-test:"${mocha_test_tag[0]}" run fakeportal
6060

61-
wait_for_url $FAKEPORTAL_URL
61+
wait_for_url "$FAKEPORTAL_URL"
6262
end "Fakeportal is ready"
6363
}

selenium/bin/components/fakeproxy

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ init_fakeproxy() {
2222
RABBITMQ_HOST_FOR_FAKEPROXY=${RABBITMQ_HOST_FOR_FAKEPROXY:-rabbitmq:15672}
2323
UAA_URL_FOR_FAKEPROXY=${UAA_URL_FOR_FAKEPROXY:-http://uaa:8080}
2424

25-
RABBITMQ_URL_FOR_FAKEPROXY=$(calculate_rabbitmq_url $RABBITMQ_HOST_FOR_FAKEPROXY)
25+
RABBITMQ_URL_FOR_FAKEPROXY=$(calculate_rabbitmq_url "$RABBITMQ_HOST_FOR_FAKEPROXY")
2626

2727
print "> FAKEPROXY_URL: ${FAKEPROXY_URL}"
2828
print "> UAA_URL: ${UAA_URL_FOR_FAKEPROXY}"
@@ -37,24 +37,24 @@ start_fakeproxy() {
3737

3838
init_fakeproxy
3939
kill_container_if_exist fakeproxy
40-
mocha_test_tag=($(md5sum $SELENIUM_ROOT_FOLDER/package.json))
40+
mapfile -t mocha_test_tag < <(md5sum "$SELENIUM_ROOT_FOLDER/package.json")
4141

4242
docker run \
4343
--detach \
4444
--name fakeproxy \
45-
--net ${DOCKER_NETWORK} \
45+
--net "${DOCKER_NETWORK}" \
4646
--publish 9090:9090 \
4747
--env PORT=9090 \
4848
--env RABBITMQ_URL="${RABBITMQ_URL_FOR_FAKEPROXY}" \
4949
--env UAA_URL="${UAA_URL_FOR_FAKEPROXY}" \
5050
--env CLIENT_ID="${CLIENT_ID}" \
5151
--env CLIENT_SECRET="${CLIENT_SECRET}" \
5252
--env NODE_EXTRA_CA_CERTS=/etc/uaa/ca_uaa_certificate.pem \
53-
-v ${TEST_CONFIG_PATH}/uaa:/etc/uaa \
54-
-v ${FAKEPROXY_DIR}:/code/fakeportal \
55-
mocha-test:${mocha_test_tag} run fakeproxy
53+
-v "${TEST_CONFIG_PATH}/uaa:/etc/uaa" \
54+
-v "${FAKEPROXY_DIR}:/code/fakeportal" \
55+
mocha-test:"${mocha_test_tag[0]}" run fakeproxy
5656

57-
wait_for_url $FAKEPROXY_URL
57+
wait_for_url "$FAKEPROXY_URL"
5858
end "fakeproxy is ready"
5959

6060
}

selenium/bin/components/forward-proxy

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
#!/usr/bin/env bash
2+
13
HTTPD_DOCKER_IMAGE=${HTTPD_DOCKER_IMAGE:-httpd:latest}
24

35
ensure_forward-proxy() {
@@ -27,18 +29,18 @@ start_forward-proxy() {
2729

2830
MOUNT_HTTPD_CONFIG_DIR=$CONF_DIR/httpd
2931

30-
mkdir -p $MOUNT_HTTPD_CONFIG_DIR
31-
${BIN_DIR}/gen-httpd-conf ${HTTPD_CONFIG_DIR} $ENV_FILE $MOUNT_HTTPD_CONFIG_DIR/httpd.conf
32+
mkdir -p "$MOUNT_HTTPD_CONFIG_DIR"
33+
"${BIN_DIR}/gen-httpd-conf" "${HTTPD_CONFIG_DIR}" "$ENV_FILE" "$MOUNT_HTTPD_CONFIG_DIR/httpd.conf"
3234
print "> EFFECTIVE HTTPD_CONFIG_FILE: $MOUNT_HTTPD_CONFIG_DIR/httpd.conf"
33-
cp ${HTTPD_CONFIG_DIR}/.htpasswd $MOUNT_HTTPD_CONFIG_DIR
35+
cp "${HTTPD_CONFIG_DIR}/.htpasswd" "$MOUNT_HTTPD_CONFIG_DIR"
3436

3537
docker run \
3638
--detach \
3739
--name forward-proxy \
38-
--net ${DOCKER_NETWORK} \
40+
--net "${DOCKER_NETWORK}" \
3941
--publish 9092:9092 \
4042
--mount "type=bind,source=${MOUNT_HTTPD_CONFIG_DIR},target=/usr/local/apache2/conf" \
41-
${HTTPD_DOCKER_IMAGE}
43+
"${HTTPD_DOCKER_IMAGE}"
4244

4345
#wait_for_url $OAUTH_PROVIDER_URL ${FORWARD_PROXY_URL}
4446
wait_for_message forward-proxy "initializing worker proxy:forward local"

selenium/bin/components/keycloak

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,14 @@ ensure_keycloak() {
1111
}
1212
init_keycloak() {
1313
KEYCLOAK_CONFIG_PATH=${KEYCLOAK_CONFIG_PATH:-oauth/keycloak}
14-
KEYCLOAK_CONFIG_DIR=$(realpath ${TEST_DIR}/${KEYCLOAK_CONFIG_PATH})
14+
KEYCLOAK_CONFIG_DIR=$(realpath "${TEST_DIR}/${KEYCLOAK_CONFIG_PATH}")
1515
KEYCLOAK_URL=${KEYCLOAK_URL:-OAUTH_PROVIDER_URL}
1616

1717
print "> KEYCLOAK_CONFIG_DIR: ${KEYCLOAK_CONFIG_DIR}"
1818
print "> KEYCLOAK_URL: ${KEYCLOAK_URL}"
1919
print "> KEYCLOAK_DOCKER_IMAGE: ${KEYCLOAK_DOCKER_IMAGE}"
2020

21-
generate-ca-server-client-kpi keycloak $KEYCLOAK_CONFIG_DIR
21+
generate-ca-server-client-kpi keycloak "$KEYCLOAK_CONFIG_DIR"
2222

2323
}
2424
start_keycloak() {
@@ -29,26 +29,26 @@ start_keycloak() {
2929

3030
MOUNT_KEYCLOAK_CONF_DIR=$CONF_DIR/keycloak
3131

32-
mkdir -p $MOUNT_KEYCLOAK_CONF_DIR
33-
${BIN_DIR}/gen-keycloak-json ${KEYCLOAK_CONFIG_DIR} "test-realm" $ENV_FILE $MOUNT_KEYCLOAK_CONF_DIR/test-realm.json
32+
mkdir -p "$MOUNT_KEYCLOAK_CONF_DIR"
33+
"${BIN_DIR}/gen-keycloak-json" "${KEYCLOAK_CONFIG_DIR}" "test-realm" "$ENV_FILE" "$MOUNT_KEYCLOAK_CONF_DIR/test-realm.json"
3434
print "> EFFECTIVE KEYCLOAK_CONFIG_FILE: $MOUNT_KEYCLOAK_CONF_DIR/test-realm.json"
35-
cp ${KEYCLOAK_CONFIG_DIR}/*.pem $MOUNT_KEYCLOAK_CONF_DIR
35+
cp "${KEYCLOAK_CONFIG_DIR}"/*.pem "$MOUNT_KEYCLOAK_CONF_DIR"
3636

3737
docker run \
3838
--detach \
3939
--name keycloak \
40-
--net ${DOCKER_NETWORK} \
40+
--net "${DOCKER_NETWORK}" \
4141
--publish 8081:8080 \
4242
--publish 8443:8443 \
4343
--env KEYCLOAK_ADMIN=admin \
4444
--env KEYCLOAK_ADMIN_PASSWORD=admin \
4545
--env QUARKUS_HTTP_ACCESS_LOG_ENABLED=true \
46-
-v ${MOUNT_KEYCLOAK_CONF_DIR}:/opt/keycloak/data/import/ \
47-
${KEYCLOAK_DOCKER_IMAGE} start-dev --import-realm --log-level=INFO \
46+
-v "${MOUNT_KEYCLOAK_CONF_DIR}:/opt/keycloak/data/import/" \
47+
"${KEYCLOAK_DOCKER_IMAGE}" start-dev --import-realm --log-level=INFO \
4848
--https-certificate-file=/opt/keycloak/data/import/server_keycloak_certificate.pem \
4949
--https-certificate-key-file=/opt/keycloak/data/import/server_keycloak_key.pem
5050

51-
wait_for_oidc_endpoint keycloak $KEYCLOAK_URL $MOUNT_KEYCLOAK_CONF_DIR/ca_keycloak_certificate.pem
51+
wait_for_oidc_endpoint keycloak "$KEYCLOAK_URL" "$MOUNT_KEYCLOAK_CONF_DIR/ca_keycloak_certificate.pem"
5252
end "Keycloak is ready"
5353

5454
print " Note: If you modify keycloak configuration. Make sure to run the following command to export the configuration."

selenium/bin/components/mock-auth-backend-http

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@ start_mock-auth-backend-http() {
2626
docker run \
2727
--detach \
2828
--name mock-auth-backend-http \
29-
--net ${DOCKER_NETWORK} \
29+
--net "${DOCKER_NETWORK}" \
3030
--publish 8888:1080 \
3131
--env MOCKSERVER_INITIALIZATION_JSON_PATH="/config/defaultExpectations.json" \
32-
-v ${AUTH_BACKEND_HTTP_DIR}:/config \
33-
${MOCKSERVER_DOCKER_IMAGE}
32+
-v "${AUTH_BACKEND_HTTP_DIR}:/config" \
33+
"${MOCKSERVER_DOCKER_IMAGE}"
3434

35-
wait_for_url $AUTH_BACKEND_HTTP_BASEURL/ready
35+
wait_for_url "$AUTH_BACKEND_HTTP_BASEURL/ready"
3636
end "mock-auth-backend-http is ready"
3737
}

selenium/bin/components/mock-auth-backend-ldap

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,14 @@ start_mock-auth-backend-ldap() {
2323
docker run \
2424
--detach \
2525
--name mock-auth-backend-ldap \
26-
--net ${DOCKER_NETWORK} \
26+
--net "${DOCKER_NETWORK}" \
2727
--env LDAP_ORGANISATION="Authentication and Tags" \
2828
--env LDAP_DOMAIN="example.com" \
2929
--env LDAP_ADMIN_PASSWORD="admin" \
3030
--publish 389:389 \
3131
--publish 636:636 \
32-
-v ${AUTH_BACKEND_LDAP_DIR}:/config \
33-
${OPENLDAP_DOCKER_IMAGE}
32+
-v "${AUTH_BACKEND_LDAP_DIR}:/config" \
33+
"${OPENLDAP_DOCKER_IMAGE}"
3434

3535
wait_for_message mock-auth-backend-ldap "starting"
3636
docker exec mock-auth-backend-ldap ldapadd \

0 commit comments

Comments
 (0)