From 405526cfa56542ed5919890bd94a503626519962 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20Gl=C3=A4=C3=9Fle?= Date: Thu, 10 Aug 2017 01:15:10 +0200 Subject: [PATCH] Properly escape sed replace expressions This fixes an error during container startup due to interpolating a $STORAGE value that may contain slashes or other "active" characters: ... Using secure websockets: false Using storage adapter: ./storage/file sed: bad option in substitution expression Also add a trailing ',' in the search expression to avoid substituting in the comment above the actual definition: /* If Cryptpad is proxied without using https, the server needs to know. * Specify 'useSecureWebsockets: true' so that it can send ... --- container-start.sh | 11 ++++++++--- docs/cryptpad-docker.md | 9 --------- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/container-start.sh b/container-start.sh index 2aa4ae10f..990a83cd2 100755 --- a/container-start.sh +++ b/container-start.sh @@ -9,15 +9,20 @@ mkdir -p customize # Linking config.js [ ! -h config.js ] && echo "Linking config.js" && ln -s customize/config.js config.js +# Thanks to http://stackoverflow.com/a/10467453 +sedeasy() { + sed -i "s/$1/$(echo $2 | sed -e 's/[\/&]/\\&/g')/g" $3 +} + # Configure [ -n "$USE_SSL" ] && echo "Using secure websockets: $USE_SSL" \ - && sed -i "s/useSecureWebsockets: .*/useSecureWebsockets: ${USE_SSL},/g" customize/config.js + && sedeasy "useSecureWebsockets: [^,]*," "useSecureWebsockets: ${USE_SSL}," customize/config.js [ -n "$STORAGE" ] && echo "Using storage adapter: $STORAGE" \ - && sed -i "s/storage: .*/storage: ${STORAGE},/g" customize/config.js + && sedeasy "storage: [^,]*," "storage: ${STORAGE}," customize/config.js [ -n "$LOG_TO_STDOUT" ] && echo "Logging to stdout: $LOG_TO_STDOUT" \ - && sed -i "s/logToStdout: .*/logToStdout: ${LOG_TO_STDOUT},/g" customize/config.js + && sedeasy "logToStdout: [^,]*," "logToStdout: ${LOG_TO_STDOUT}," customize/config.js exec node ./server.js diff --git a/docs/cryptpad-docker.md b/docs/cryptpad-docker.md index d329f0354..027792c2e 100644 --- a/docs/cryptpad-docker.md +++ b/docs/cryptpad-docker.md @@ -22,15 +22,6 @@ Or, using docker-compose docker-compose up -d ``` -## TODO - -``` -cryptpad_1 | Linking config.js -cryptpad_1 | Using secure websockets: true -cryptpad_1 | Using storage adapter: './storage/file' -cryptpad_1 | sed: -e expression #1, char 27: unknown option to `s' -``` - ## Configuration Set configurations Dockerfile or in .env (using docker-compose) file.