Fix exit code for mongo:export when SSH_TTY is not present

This commit is contained in:
Edgars Beigarts
2016-02-24 09:16:59 +02:00
parent 9d49ee0edc
commit 822a0259f9
2 changed files with 13 additions and 1 deletions

View File

@@ -122,7 +122,9 @@ case "$1" in
[[ -n $SSH_TTY ]] && stty -opost [[ -n $SSH_TTY ]] && stty -opost
docker exec "$SERVICE_NAME" bash -c "DIR=\$(mktemp -d) && mongodump -d $SERVICE -o \"\$DIR\" -u \"$SERVICE\" -p \"$PASSWORD\" --authenticationDatabase \"$SERVICE\" 1>&2 && tar cf - -C \"\$DIR\" . && rm -rf \"\$DIR\"" docker exec "$SERVICE_NAME" bash -c "DIR=\$(mktemp -d) && mongodump -d $SERVICE -o \"\$DIR\" -u \"$SERVICE\" -p \"$PASSWORD\" --authenticationDatabase \"$SERVICE\" 1>&2 && tar cf - -C \"\$DIR\" . && rm -rf \"\$DIR\""
status=$?
[[ -n $SSH_TTY ]] && stty opost [[ -n $SSH_TTY ]] && stty opost
exit $status
;; ;;
$PLUGIN_COMMAND_PREFIX:import) $PLUGIN_COMMAND_PREFIX:import)

View File

@@ -21,10 +21,20 @@ teardown() {
assert_contains "${lines[*]}" "service not_existing_service does not exist" assert_contains "${lines[*]}" "service not_existing_service does not exist"
} }
@test "($PLUGIN_COMMAND_PREFIX:export) success" { @test "($PLUGIN_COMMAND_PREFIX:export) success with SSH_TTY" {
export ECHO_DOCKER_COMMAND="true" export ECHO_DOCKER_COMMAND="true"
export SSH_TTY=`tty`
run dokku "$PLUGIN_COMMAND_PREFIX:export" l run dokku "$PLUGIN_COMMAND_PREFIX:export" l
password="$(cat "$PLUGIN_DATA_ROOT/l/PASSWORD")" password="$(cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
assert_exit_status 0
assert_output "docker exec dokku.mongo.l bash -c DIR=\$(mktemp -d) && mongodump -d l -o \"\$DIR\" -u \"l\" -p \"$password\" --authenticationDatabase \"l\" 1>&2 && tar cf - -C \"\$DIR\" . && rm -rf \"\$DIR\"" assert_output "docker exec dokku.mongo.l bash -c DIR=\$(mktemp -d) && mongodump -d l -o \"\$DIR\" -u \"l\" -p \"$password\" --authenticationDatabase \"l\" 1>&2 && tar cf - -C \"\$DIR\" . && rm -rf \"\$DIR\""
} }
@test "($PLUGIN_COMMAND_PREFIX:export) success without SSH_TTY" {
export ECHO_DOCKER_COMMAND="true"
unset SSH_TTY
run dokku "$PLUGIN_COMMAND_PREFIX:export" l
password="$(cat "$PLUGIN_DATA_ROOT/l/PASSWORD")"
assert_exit_status 0
assert_output "docker exec dokku.mongo.l bash -c DIR=\$(mktemp -d) && mongodump -d l -o \"\$DIR\" -u \"l\" -p \"$password\" --authenticationDatabase \"l\" 1>&2 && tar cf - -C \"\$DIR\" . && rm -rf \"\$DIR\""
}