Skip to content

Commit 16adc22

Browse files
authored
Merge pull request #160 from infosiftr/yaml
Adjust "sed" expressions so we can bind-mount the configuration file
2 parents 37537ed + 0e270a9 commit 16adc22

File tree

5 files changed

+85
-20
lines changed

5 files changed

+85
-20
lines changed

2.1/docker-entrypoint.sh

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@ _ip_address() {
2626
'
2727
}
2828

29+
# "sed -i", but without "mv" (which doesn't work on a bind-mounted file, for example)
30+
_sed-in-place() {
31+
local filename="$1"; shift
32+
local tempFile
33+
tempFile="$(mktemp)"
34+
sed "$@" "$filename" > "$tempFile"
35+
cat "$tempFile" > "$filename"
36+
rm "$tempFile"
37+
}
38+
2939
if [ "$1" = 'cassandra' ]; then
3040
: ${CASSANDRA_RPC_ADDRESS='0.0.0.0'}
3141

@@ -45,8 +55,9 @@ if [ "$1" = 'cassandra' ]; then
4555
: ${CASSANDRA_SEEDS:="cassandra"}
4656
fi
4757
: ${CASSANDRA_SEEDS:="$CASSANDRA_BROADCAST_ADDRESS"}
48-
49-
sed -ri 's/(- seeds:).*/\1 "'"$CASSANDRA_SEEDS"'"/' "$CASSANDRA_CONFIG/cassandra.yaml"
58+
59+
_sed-in-place "$CASSANDRA_CONFIG/cassandra.yaml" \
60+
-r 's/(- seeds:).*/\1 "'"$CASSANDRA_SEEDS"'"/'
5061

5162
for yaml in \
5263
broadcast_address \
@@ -61,15 +72,17 @@ if [ "$1" = 'cassandra' ]; then
6172
var="CASSANDRA_${yaml^^}"
6273
val="${!var}"
6374
if [ "$val" ]; then
64-
sed -ri 's/^(# )?('"$yaml"':).*/\2 '"$val"'/' "$CASSANDRA_CONFIG/cassandra.yaml"
75+
_sed-in-place "$CASSANDRA_CONFIG/cassandra.yaml" \
76+
-r 's/^(# )?('"$yaml"':).*/\2 '"$val"'/'
6577
fi
6678
done
6779

6880
for rackdc in dc rack; do
6981
var="CASSANDRA_${rackdc^^}"
7082
val="${!var}"
7183
if [ "$val" ]; then
72-
sed -ri 's/^('"$rackdc"'=).*/\1 '"$val"'/' "$CASSANDRA_CONFIG/cassandra-rackdc.properties"
84+
_sed-in-place "$CASSANDRA_CONFIG/cassandra-rackdc.properties" \
85+
-r 's/^('"$rackdc"'=).*/\1 '"$val"'/'
7386
fi
7487
done
7588
fi

2.2/docker-entrypoint.sh

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@ _ip_address() {
2626
'
2727
}
2828

29+
# "sed -i", but without "mv" (which doesn't work on a bind-mounted file, for example)
30+
_sed-in-place() {
31+
local filename="$1"; shift
32+
local tempFile
33+
tempFile="$(mktemp)"
34+
sed "$@" "$filename" > "$tempFile"
35+
cat "$tempFile" > "$filename"
36+
rm "$tempFile"
37+
}
38+
2939
if [ "$1" = 'cassandra' ]; then
3040
: ${CASSANDRA_RPC_ADDRESS='0.0.0.0'}
3141

@@ -45,8 +55,9 @@ if [ "$1" = 'cassandra' ]; then
4555
: ${CASSANDRA_SEEDS:="cassandra"}
4656
fi
4757
: ${CASSANDRA_SEEDS:="$CASSANDRA_BROADCAST_ADDRESS"}
48-
49-
sed -ri 's/(- seeds:).*/\1 "'"$CASSANDRA_SEEDS"'"/' "$CASSANDRA_CONFIG/cassandra.yaml"
58+
59+
_sed-in-place "$CASSANDRA_CONFIG/cassandra.yaml" \
60+
-r 's/(- seeds:).*/\1 "'"$CASSANDRA_SEEDS"'"/'
5061

5162
for yaml in \
5263
broadcast_address \
@@ -61,15 +72,17 @@ if [ "$1" = 'cassandra' ]; then
6172
var="CASSANDRA_${yaml^^}"
6273
val="${!var}"
6374
if [ "$val" ]; then
64-
sed -ri 's/^(# )?('"$yaml"':).*/\2 '"$val"'/' "$CASSANDRA_CONFIG/cassandra.yaml"
75+
_sed-in-place "$CASSANDRA_CONFIG/cassandra.yaml" \
76+
-r 's/^(# )?('"$yaml"':).*/\2 '"$val"'/'
6577
fi
6678
done
6779

6880
for rackdc in dc rack; do
6981
var="CASSANDRA_${rackdc^^}"
7082
val="${!var}"
7183
if [ "$val" ]; then
72-
sed -ri 's/^('"$rackdc"'=).*/\1 '"$val"'/' "$CASSANDRA_CONFIG/cassandra-rackdc.properties"
84+
_sed-in-place "$CASSANDRA_CONFIG/cassandra-rackdc.properties" \
85+
-r 's/^('"$rackdc"'=).*/\1 '"$val"'/'
7386
fi
7487
done
7588
fi

3.0/docker-entrypoint.sh

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@ _ip_address() {
2626
'
2727
}
2828

29+
# "sed -i", but without "mv" (which doesn't work on a bind-mounted file, for example)
30+
_sed-in-place() {
31+
local filename="$1"; shift
32+
local tempFile
33+
tempFile="$(mktemp)"
34+
sed "$@" "$filename" > "$tempFile"
35+
cat "$tempFile" > "$filename"
36+
rm "$tempFile"
37+
}
38+
2939
if [ "$1" = 'cassandra' ]; then
3040
: ${CASSANDRA_RPC_ADDRESS='0.0.0.0'}
3141

@@ -45,8 +55,9 @@ if [ "$1" = 'cassandra' ]; then
4555
: ${CASSANDRA_SEEDS:="cassandra"}
4656
fi
4757
: ${CASSANDRA_SEEDS:="$CASSANDRA_BROADCAST_ADDRESS"}
48-
49-
sed -ri 's/(- seeds:).*/\1 "'"$CASSANDRA_SEEDS"'"/' "$CASSANDRA_CONFIG/cassandra.yaml"
58+
59+
_sed-in-place "$CASSANDRA_CONFIG/cassandra.yaml" \
60+
-r 's/(- seeds:).*/\1 "'"$CASSANDRA_SEEDS"'"/'
5061

5162
for yaml in \
5263
broadcast_address \
@@ -61,15 +72,17 @@ if [ "$1" = 'cassandra' ]; then
6172
var="CASSANDRA_${yaml^^}"
6273
val="${!var}"
6374
if [ "$val" ]; then
64-
sed -ri 's/^(# )?('"$yaml"':).*/\2 '"$val"'/' "$CASSANDRA_CONFIG/cassandra.yaml"
75+
_sed-in-place "$CASSANDRA_CONFIG/cassandra.yaml" \
76+
-r 's/^(# )?('"$yaml"':).*/\2 '"$val"'/'
6577
fi
6678
done
6779

6880
for rackdc in dc rack; do
6981
var="CASSANDRA_${rackdc^^}"
7082
val="${!var}"
7183
if [ "$val" ]; then
72-
sed -ri 's/^('"$rackdc"'=).*/\1 '"$val"'/' "$CASSANDRA_CONFIG/cassandra-rackdc.properties"
84+
_sed-in-place "$CASSANDRA_CONFIG/cassandra-rackdc.properties" \
85+
-r 's/^('"$rackdc"'=).*/\1 '"$val"'/'
7386
fi
7487
done
7588
fi

3.11/docker-entrypoint.sh

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@ _ip_address() {
2626
'
2727
}
2828

29+
# "sed -i", but without "mv" (which doesn't work on a bind-mounted file, for example)
30+
_sed-in-place() {
31+
local filename="$1"; shift
32+
local tempFile
33+
tempFile="$(mktemp)"
34+
sed "$@" "$filename" > "$tempFile"
35+
cat "$tempFile" > "$filename"
36+
rm "$tempFile"
37+
}
38+
2939
if [ "$1" = 'cassandra' ]; then
3040
: ${CASSANDRA_RPC_ADDRESS='0.0.0.0'}
3141

@@ -45,8 +55,9 @@ if [ "$1" = 'cassandra' ]; then
4555
: ${CASSANDRA_SEEDS:="cassandra"}
4656
fi
4757
: ${CASSANDRA_SEEDS:="$CASSANDRA_BROADCAST_ADDRESS"}
48-
49-
sed -ri 's/(- seeds:).*/\1 "'"$CASSANDRA_SEEDS"'"/' "$CASSANDRA_CONFIG/cassandra.yaml"
58+
59+
_sed-in-place "$CASSANDRA_CONFIG/cassandra.yaml" \
60+
-r 's/(- seeds:).*/\1 "'"$CASSANDRA_SEEDS"'"/'
5061

5162
for yaml in \
5263
broadcast_address \
@@ -61,15 +72,17 @@ if [ "$1" = 'cassandra' ]; then
6172
var="CASSANDRA_${yaml^^}"
6273
val="${!var}"
6374
if [ "$val" ]; then
64-
sed -ri 's/^(# )?('"$yaml"':).*/\2 '"$val"'/' "$CASSANDRA_CONFIG/cassandra.yaml"
75+
_sed-in-place "$CASSANDRA_CONFIG/cassandra.yaml" \
76+
-r 's/^(# )?('"$yaml"':).*/\2 '"$val"'/'
6577
fi
6678
done
6779

6880
for rackdc in dc rack; do
6981
var="CASSANDRA_${rackdc^^}"
7082
val="${!var}"
7183
if [ "$val" ]; then
72-
sed -ri 's/^('"$rackdc"'=).*/\1 '"$val"'/' "$CASSANDRA_CONFIG/cassandra-rackdc.properties"
84+
_sed-in-place "$CASSANDRA_CONFIG/cassandra-rackdc.properties" \
85+
-r 's/^('"$rackdc"'=).*/\1 '"$val"'/'
7386
fi
7487
done
7588
fi

docker-entrypoint.sh

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,16 @@ _ip_address() {
2626
'
2727
}
2828

29+
# "sed -i", but without "mv" (which doesn't work on a bind-mounted file, for example)
30+
_sed-in-place() {
31+
local filename="$1"; shift
32+
local tempFile
33+
tempFile="$(mktemp)"
34+
sed "$@" "$filename" > "$tempFile"
35+
cat "$tempFile" > "$filename"
36+
rm "$tempFile"
37+
}
38+
2939
if [ "$1" = 'cassandra' ]; then
3040
: ${CASSANDRA_RPC_ADDRESS='0.0.0.0'}
3141

@@ -45,8 +55,9 @@ if [ "$1" = 'cassandra' ]; then
4555
: ${CASSANDRA_SEEDS:="cassandra"}
4656
fi
4757
: ${CASSANDRA_SEEDS:="$CASSANDRA_BROADCAST_ADDRESS"}
48-
49-
sed -ri 's/(- seeds:).*/\1 "'"$CASSANDRA_SEEDS"'"/' "$CASSANDRA_CONFIG/cassandra.yaml"
58+
59+
_sed-in-place "$CASSANDRA_CONFIG/cassandra.yaml" \
60+
-r 's/(- seeds:).*/\1 "'"$CASSANDRA_SEEDS"'"/'
5061

5162
for yaml in \
5263
broadcast_address \
@@ -61,15 +72,17 @@ if [ "$1" = 'cassandra' ]; then
6172
var="CASSANDRA_${yaml^^}"
6273
val="${!var}"
6374
if [ "$val" ]; then
64-
sed -ri 's/^(# )?('"$yaml"':).*/\2 '"$val"'/' "$CASSANDRA_CONFIG/cassandra.yaml"
75+
_sed-in-place "$CASSANDRA_CONFIG/cassandra.yaml" \
76+
-r 's/^(# )?('"$yaml"':).*/\2 '"$val"'/'
6577
fi
6678
done
6779

6880
for rackdc in dc rack; do
6981
var="CASSANDRA_${rackdc^^}"
7082
val="${!var}"
7183
if [ "$val" ]; then
72-
sed -ri 's/^('"$rackdc"'=).*/\1 '"$val"'/' "$CASSANDRA_CONFIG/cassandra-rackdc.properties"
84+
_sed-in-place "$CASSANDRA_CONFIG/cassandra-rackdc.properties" \
85+
-r 's/^('"$rackdc"'=).*/\1 '"$val"'/'
7386
fi
7487
done
7588
fi

0 commit comments

Comments
 (0)