diff --git a/plugins/build-env/pre-build b/plugins/build-env/pre-build index 28ac78ea0..ca0609d18 100755 --- a/plugins/build-env/pre-build +++ b/plugins/build-env/pre-build @@ -20,7 +20,7 @@ if [[ ! -z "$BUILD_ENV" ]]; then echo "-----> Adding BUILD_ENV to build environment..." # create build env files for use in buildpacks like this: # https://github.com/niteoweb/heroku-buildpack-buildout/blob/5879fa3418f7d8e079f1aa5816ba1adde73f4948/bin/compile#L34 - id=$(echo $BUILD_ENV |sed 's@export @@g'| docker run -i -a stdin $IMAGE /bin/bash -c "for ENV_VAR in $(cat); do echo \$ENV_VAR |sed 's@^\([^=]*\)=\(.*\)\$@echo \2 >/tmp/env/\1@g' >>/tmp/set_env.sh; done && mkdir -p /tmp/env && /bin/bash /tmp/set_env.sh") + id=$(echo $BUILD_ENV |sed 's@export @@g'| docker run -i -a stdin $IMAGE /bin/bash -c "for ENV_VAR in $(cat); do echo \$ENV_VAR |sed 's@^\([^=]*\)=\(.*\)\$@echo \\\"\2\\\" >/tmp/env/\1@g' >>/tmp/set_env.sh; done && mkdir -p /tmp/env && /bin/bash /tmp/set_env.sh") test "$(docker wait $id)" -eq 0 docker commit $id $IMAGE > /dev/null diff --git a/tests/unit/build-env.bats b/tests/unit/build-env.bats new file mode 100644 index 000000000..cd062742a --- /dev/null +++ b/tests/unit/build-env.bats @@ -0,0 +1,21 @@ +#!/usr/bin/env bats + +load test_helper + +setup() { + create_app +} + +teardown() { + destroy_app +} + +@test "build-env with special chars" { + run dokku config:set $TEST_APP NEWRELIC_APP_NAME="$TEST_APP (Staging)" + echo "output: "$output + echo "status: "$status + assert_success + deploy_app + run dokku config $TEST_APP + assert_success +}