diff --git a/4.0/docker-entrypoint.sh b/4.0/docker-entrypoint.sh index 6549f83..789d856 100755 --- a/4.0/docker-entrypoint.sh +++ b/4.0/docker-entrypoint.sh @@ -40,6 +40,17 @@ _sed-in-place() { rm "$tempFile" } +_sed-in-place_ext() { + local filename="$1"; + key="$2"; + value="$3"; + local tempFile + tempFile="$(mktemp)" + grep -q "$key" $filename && sed -r 's/^(# )?('"$key"':).*/\2 '"$value"'/' "$filename" > "$tempFile" || sed "$ a\\${key}: $value" "$filename" > "$tempFile" + cat "$tempFile" > "$filename" + rm "$tempFile" +} + if [ "$1" = 'cassandra' ]; then : ${CASSANDRA_RPC_ADDRESS='0.0.0.0'} @@ -81,6 +92,15 @@ if [ "$1" = 'cassandra' ]; then fi done + + for conf_yaml_var in "${!CASSANDRA_YML_@}"; do + conf_yaml_key="$(echo "${conf_yaml_var,,}" | sed -e 's/^cassandra_yml_//g')" + conf_yaml_val="${!conf_yaml_var}" + if [ "$conf_yaml_val" ]; then + _sed-in-place_ext "$CASSANDRA_CONF/cassandra.yaml" "$conf_yaml_key" "$conf_yaml_val" + fi + done + for rackdc in dc rack; do var="CASSANDRA_${rackdc^^}" val="${!var}"