[COMMON] Enforce checkbashisms tox profile
[oom.git] / kubernetes / common / cassandra / resources / config / docker-entrypoint.sh
index 5b65222..4dcebc8 100644 (file)
@@ -1,4 +1,5 @@
-#!/bin/bash
+#!/bin/sh
+
 set -e
 
 # first arg is `-f` or `--some-option`
@@ -11,7 +12,7 @@ fi
 if [ "$1" = 'cassandra' -a "$(id -u)" = '0' ]; then
         find /var/lib/cassandra /var/log/cassandra "$CASSANDRA_CONFIG" \
                 \! -user cassandra -exec chown cassandra '{}' +
-        exec gosu cassandra "$BASH_SOURCE" "$@"
+        exec gosu cassandra "$0" "$@"
 fi
 
 _ip_address() {
@@ -27,7 +28,7 @@ _ip_address() {
 }
 
 # "sed -i", but without "mv" (which doesn't work on a bind-mounted file, for example)
-_sed-in-place() {
+_sed_in_place() {
         local filename="$1"; shift
         local tempFile
         tempFile="$(mktemp)"
@@ -56,7 +57,7 @@ if [ "$1" = 'cassandra' ]; then
         fi
         : ${CASSANDRA_SEEDS:="$CASSANDRA_BROADCAST_ADDRESS"}
 
-        _sed-in-place "$CASSANDRA_CONFIG/cassandra.yaml" \
+        _sed_in_place "$CASSANDRA_CONFIG/cassandra.yaml" \
                 -r 's/(- seeds:).*/\1 "'"$CASSANDRA_SEEDS"'"/'
 
         for yaml in \
@@ -70,19 +71,21 @@ if [ "$1" = 'cassandra' ]; then
                 start_rpc \
                 authenticator \
         ; do
-                var="CASSANDRA_${yaml^^}"
-                val="${!var}"
+                var="CASSANDRA_$(echo $yaml | tr '[:lower:]' '[:upper:]')"
+                # eval presents no security issue here because of limited possible values of var
+                eval val=\$$var
                 if [ "$val" ]; then
-                        _sed-in-place "$CASSANDRA_CONFIG/cassandra.yaml" \
+                        _sed_in_place "$CASSANDRA_CONFIG/cassandra.yaml" \
                                 -r 's/^(# )?('"$yaml"':).*/\2 '"$val"'/'
                 fi
         done
 
         for rackdc in dc rack; do
-                var="CASSANDRA_${rackdc^^}"
-                val="${!var}"
+                var="CASSANDRA_$(echo $rackdc | tr '[:lower:]' '[:upper:]')"
+                # eval presents no security issue here because of limited possible values of var
+                eval val=\$$var
                 if [ "$val" ]; then
-                        _sed-in-place "$CASSANDRA_CONFIG/cassandra-rackdc.properties" \
+                        _sed_in_place "$CASSANDRA_CONFIG/cassandra-rackdc.properties" \
                                 -r 's/^('"$rackdc"'=).*/\1 '"$val"'/'
                 fi
         done