diff --git a/Makefile b/Makefile index 09a7b5e5f..16241f042 100644 --- a/Makefile +++ b/Makefile @@ -106,7 +106,7 @@ addman: help2man man-db version: ifeq ($(DOKKU_VERSION),master) - git describe --tags > ~dokku/VERSION 2> /dev/null || echo '~${DOKKU_VERSION} ($(shell date -uIminutes))' > ~dokku/VERSION + git describe --tags > ~dokku/VERSION 2>/dev/null || echo '~${DOKKU_VERSION} ($(shell date -uIminutes))' > ~dokku/VERSION else echo $(DOKKU_VERSION) > ~dokku/VERSION endif diff --git a/Vagrantfile b/Vagrantfile index c892339b6..676c3ea62 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -49,7 +49,7 @@ Vagrant::configure("2") do |config| vb.customize ["modifyvm", :id, "--cableconnected1", "on"] end - vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update > /dev/null && apt-get -qq -y install git > /dev/null && cd /root/dokku && #{make_cmd}" + vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update >/dev/null && apt-get -qq -y install git >/dev/null && cd /root/dokku && #{make_cmd}" vm.vm.provision :shell, :inline => "cd /root/dokku && make dokku-installer" vm.vm.provision :shell do |s| s.inline = <<-EOT @@ -66,7 +66,7 @@ Vagrant::configure("2") do |config| vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT vm.vm.hostname = "#{DOKKU_DOMAIN}" vm.vm.network :private_network, ip: DOKKU_IP - vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update > /dev/null && apt-get -qq -y install git dos2unix > /dev/null" + vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update >/dev/null && apt-get -qq -y install git dos2unix >/dev/null" vm.vm.provision :shell, :inline => "cd /vagrant/ && export DOKKU_BRANCH=`git symbolic-ref -q --short HEAD 2>/dev/null` && export DOKKU_TAG=`git describe --tags --exact-match 2>/dev/null` && cd /root/ && cp /vagrant/bootstrap.sh ./ && dos2unix bootstrap.sh && bash bootstrap.sh" end @@ -92,7 +92,7 @@ Vagrant::configure("2") do |config| vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT vm.vm.hostname = "#{DOKKU_DOMAIN}" vm.vm.network :private_network, ip: DOKKU_IP - vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update > /dev/null && apt-get -qq -y install git > /dev/null && cd /root/dokku && #{make_cmd}" + vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update >/dev/null && apt-get -qq -y install git >/dev/null && cd /root/dokku && #{make_cmd}" vm.vm.provision :shell, :inline => "export IS_RELEASE=true && cd /root/dokku && make deb-all rpm-all" end diff --git a/contrib/build-base.Dockerfile b/contrib/build-base.Dockerfile index a7f7f141e..b983cafda 100644 --- a/contrib/build-base.Dockerfile +++ b/contrib/build-base.Dockerfile @@ -3,4 +3,4 @@ FROM ubuntu:14.04 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get -y install gcc git build-essential wget ruby-dev ruby1.9.1 lintian rpm help2man man-db -RUN command -v fpm > /dev/null || sudo gem install fpm --no-ri --no-rdoc +RUN command -v fpm >/dev/null || sudo gem install fpm --no-ri --no-rdoc diff --git a/contrib/build-dokku-update.Dockerfile b/contrib/build-dokku-update.Dockerfile index 193ce217b..371f5a9b5 100644 --- a/contrib/build-dokku-update.Dockerfile +++ b/contrib/build-dokku-update.Dockerfile @@ -3,7 +3,7 @@ FROM dokku/build-base:0.0.1 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get -y install gcc git build-essential wget ruby-dev ruby1.9.1 lintian rpm help2man man-db -RUN command -v fpm > /dev/null || sudo gem install fpm --no-ri --no-rdoc +RUN command -v fpm >/dev/null || sudo gem install fpm --no-ri --no-rdoc ARG WORKDIR=/go/src/github.com/dokku/dokku diff --git a/contrib/build-dokku.Dockerfile b/contrib/build-dokku.Dockerfile index 94e286f5e..484b1e8dc 100644 --- a/contrib/build-dokku.Dockerfile +++ b/contrib/build-dokku.Dockerfile @@ -3,7 +3,7 @@ FROM dokku/build-base:0.0.1 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get -y install gcc git build-essential wget ruby-dev ruby1.9.1 lintian rpm help2man man-db -RUN command -v fpm > /dev/null || sudo gem install fpm --no-ri --no-rdoc +RUN command -v fpm >/dev/null || sudo gem install fpm --no-ri --no-rdoc ARG GOLANG_VERSION diff --git a/contrib/build-herokuish.Dockerfile b/contrib/build-herokuish.Dockerfile index 5375f9c87..1360091aa 100644 --- a/contrib/build-herokuish.Dockerfile +++ b/contrib/build-herokuish.Dockerfile @@ -3,7 +3,7 @@ FROM dokku/build-base:0.0.1 ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && apt-get -y install gcc git build-essential wget ruby-dev ruby1.9.1 lintian rpm help2man man-db -RUN command -v fpm > /dev/null || sudo gem install fpm --no-ri --no-rdoc +RUN command -v fpm >/dev/null || sudo gem install fpm --no-ri --no-rdoc ARG WORKDIR=/go/src/github.com/dokku/dokku diff --git a/contrib/packer.json b/contrib/packer.json index 634609a98..31fdc20cf 100644 --- a/contrib/packer.json +++ b/contrib/packer.json @@ -19,7 +19,7 @@ "sleep 30", "echo '--> Updating apt repositories'", - "sudo apt-get update -qq > /dev/null", + "sudo apt-get update -qq >/dev/null", "echo '--> Installing make requirement'", "sudo apt-get -qq -y install build-essential", diff --git a/contrib/release-dokku b/contrib/release-dokku index 519cbdaa4..fcb6be588 100755 --- a/contrib/release-dokku +++ b/contrib/release-dokku @@ -6,7 +6,7 @@ readonly ROOT_DIR="$(cd "$(dirname "$(dirname "${BASH_SOURCE[0]}")")" && pwd)" readonly TMP_WORK_DIR="$(mktemp -d "/tmp/dokku-release.XXXX")" readonly DOKKU_GIT_REV="$(git rev-parse HEAD)" -trap 'rm -rf "$TMP_WORK_DIR" > /dev/null' RETURN INT TERM EXIT +trap 'rm -rf "$TMP_WORK_DIR" >/dev/null' RETURN INT TERM EXIT log-info() { # shellcheck disable=SC2034 @@ -24,7 +24,7 @@ log-fail() { # shellcheck disable=SC2034 declare desc="Log fail formatter" log-error "$*" - exit -1 + exit 1 } fn-build-dokku() { diff --git a/contrib/release-dokku-update b/contrib/release-dokku-update index ff65578ff..a431b0c87 100755 --- a/contrib/release-dokku-update +++ b/contrib/release-dokku-update @@ -6,7 +6,7 @@ readonly ROOT_DIR="$(cd "$(dirname "$(dirname "${BASH_SOURCE[0]}")")" && pwd)" readonly TMP_WORK_DIR="$(mktemp -d "/tmp/dokku-release.XXXX")" readonly DOKKU_GIT_REV="$(git rev-parse HEAD)" -trap 'rm -rf "$TMP_WORK_DIR" > /dev/null' RETURN INT TERM EXIT +trap 'rm -rf "$TMP_WORK_DIR" >/dev/null' RETURN INT TERM EXIT log-info() { # shellcheck disable=SC2034 @@ -24,7 +24,7 @@ log-fail() { # shellcheck disable=SC2034 declare desc="Log fail formatter" log-error "$*" - exit -1 + exit 1 } fn-build-dokku() { diff --git a/contrib/release-herokuish b/contrib/release-herokuish index 381897f15..9293441df 100755 --- a/contrib/release-herokuish +++ b/contrib/release-herokuish @@ -6,7 +6,7 @@ readonly ROOT_DIR="$(cd "$(dirname "$(dirname "${BASH_SOURCE[0]}")")" && pwd)" readonly TMP_WORK_DIR="$(mktemp -d "/tmp/dokku-release.XXXX")" readonly DOKKU_GIT_REV="$(git rev-parse HEAD)" -trap 'rm -rf "$TMP_WORK_DIR" > /dev/null' RETURN INT TERM EXIT +trap 'rm -rf "$TMP_WORK_DIR" >/dev/null' RETURN INT TERM EXIT log-info() { # shellcheck disable=SC2034 @@ -24,7 +24,7 @@ log-fail() { # shellcheck disable=SC2034 declare desc="Log fail formatter" log-error "$*" - exit -1 + exit 1 } fn-build-dokku() { diff --git a/contrib/release-plugin b/contrib/release-plugin index 83aaffa8b..bf7a0d06e 100755 --- a/contrib/release-plugin +++ b/contrib/release-plugin @@ -4,7 +4,7 @@ set -eo pipefail readonly TMP_WORK_DIR="$(mktemp -d "/tmp/dokku-plugin-release.XXXX")" -trap 'rm -rf "$TMP_WORK_DIR" > /dev/null' RETURN INT TERM EXIT +trap 'rm -rf "$TMP_WORK_DIR" >/dev/null' RETURN INT TERM EXIT log-info() { # shellcheck disable=SC2034 @@ -22,7 +22,7 @@ log-fail() { # shellcheck disable=SC2034 declare desc="Log fail formatter" log-error "$*" - exit -1 + exit 1 } fn-github-download-release() { diff --git a/deb.mk b/deb.mk index 62f14dd1a..77038aa18 100644 --- a/deb.mk +++ b/deb.mk @@ -64,7 +64,7 @@ export SSHCOMMAND_DESCRIPTION install-from-deb: @echo "--> Initial apt-get update" - sudo apt-get update -qq > /dev/null + sudo apt-get update -qq >/dev/null sudo apt-get install -qq -y apt-transport-https @echo "--> Installing docker" @@ -72,8 +72,8 @@ install-from-deb: @echo "--> Installing dokku" wget -nv -O - https://packagecloud.io/dokku/dokku/gpgkey | apt-key add - - @echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ $(shell lsb_release -cs 2> /dev/null || echo "trusty") main" | sudo tee /etc/apt/sources.list.d/dokku.list - sudo apt-get update -qq > /dev/null + @echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ $(shell lsb_release -cs 2>/dev/null || echo "trusty") main" | sudo tee /etc/apt/sources.list.d/dokku.list + sudo apt-get update -qq >/dev/null sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get install -yy dokku deb-all: deb-setup deb-herokuish deb-dokku deb-plugn deb-sshcommand deb-sigil deb-dokku-update @@ -82,9 +82,9 @@ deb-all: deb-setup deb-herokuish deb-dokku deb-plugn deb-sshcommand deb-sigil de deb-setup: @echo "-> Updating deb repository and installing build requirements" - @sudo apt-get update -qq > /dev/null - @sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get install -qq -y gcc git build-essential wget ruby-dev ruby1.9.1 lintian > /dev/null 2>&1 - @command -v fpm > /dev/null || sudo gem install fpm --no-ri --no-rdoc + @sudo apt-get update -qq >/dev/null + @sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get install -qq -y gcc git build-essential wget ruby-dev ruby1.9.1 lintian >/dev/null 2>&1 + @command -v fpm >/dev/null || sudo gem install fpm --no-ri --no-rdoc @ssh -o StrictHostKeyChecking=no git@github.com || true deb-herokuish: @@ -95,9 +95,9 @@ deb-herokuish: @echo "#!/usr/bin/env bash" >> /tmp/tmp/post-install @echo "sleep 5" >> /tmp/tmp/post-install @echo "echo 'Importing herokuish into docker (around 5 minutes)'" >> /tmp/tmp/post-install - @echo 'if [[ ! -z $${http_proxy+x} ]]; then echo "See the docker pull docs for proxy configuration"; fi' >> /tmp/tmp/post-install - @echo 'if [[ ! -z $${https_proxy+x} ]]; then echo "See the docker pull docs for proxy configuration"; fi' >> /tmp/tmp/post-install - @echo 'if [[ ! -z $${BUILDARGS+x} ]]; then echo "See the docker pull docs for proxy configuration"; fi' >> /tmp/tmp/post-install + @echo 'if [[ -n $${http_proxy+x} ]]; then echo "See the docker pull docs for proxy configuration"; fi' >> /tmp/tmp/post-install + @echo 'if [[ -n $${https_proxy+x} ]]; then echo "See the docker pull docs for proxy configuration"; fi' >> /tmp/tmp/post-install + @echo 'if [[ -n $${BUILDARGS+x} ]]; then echo "See the docker pull docs for proxy configuration"; fi' >> /tmp/tmp/post-install @echo "sudo docker pull gliderlabs/herokuish:v${HEROKUISH_VERSION} && sudo docker tag gliderlabs/herokuish:v${HEROKUISH_VERSION} gliderlabs/herokuish:latest" >> /tmp/tmp/post-install @echo "-> Creating $(HEROKUISH_PACKAGE_NAME)" diff --git a/docs/development/plugin-creation.md b/docs/development/plugin-creation.md index ae27e8053..66817f2cc 100644 --- a/docs/development/plugin-creation.md +++ b/docs/development/plugin-creation.md @@ -45,7 +45,7 @@ hello_main_cmd() { # Use the following lines to reorder args into "$cmd $DOKKU_APP_NAME $@"" local argv=("$@") [[ ${argv[0]} == "$cmd" ]] && shift 1 - [[ ! -z $DOKKU_APP_NAME ]] && set -- $DOKKU_APP_NAME $@ + [[ -n $DOKKU_APP_NAME ]] && set -- $DOKKU_APP_NAME $@ set -- $cmd $@ ## @@ -73,7 +73,7 @@ hello_world_cmd() { # Use the following lines to reorder args into "$cmd $DOKKU_APP_NAME $@"" local argv=("$@") [[ ${argv[0]} == "$cmd" ]] && shift 1 - [[ ! -z $DOKKU_APP_NAME ]] && set -- $DOKKU_APP_NAME $@ + [[ -n $DOKKU_APP_NAME ]] && set -- $DOKKU_APP_NAME $@ set -- $cmd $@ ## diff --git a/docs/development/plugin-triggers.md b/docs/development/plugin-triggers.md index 8c7986b04..4f4abbf5e 100644 --- a/docs/development/plugin-triggers.md +++ b/docs/development/plugin-triggers.md @@ -760,7 +760,7 @@ APP="$1"; verify_app_name "$APP" TMP_WORK_DIR="$2" REV="$3" # optional, may not be sent for tar-based builds -pushd "$TMP_WORK_DIR" > /dev/null +pushd "$TMP_WORK_DIR" >/dev/null touch Procfile echo "clock: some-command" >> Procfile ``` @@ -804,12 +804,12 @@ verify_app_name "$APP" dokku_log_info1 "Installing $CONTAINER_PACKAGE..." CMD="cat > gm && \ - dpkg -s CONTAINER_PACKAGE > /dev/null 2>&1 || \ + dpkg -s CONTAINER_PACKAGE >/dev/null 2>&1 || \ (apt-get update && apt-get install -y CONTAINER_PACKAGE && apt-get clean)" ID=$(docker run $DOKKU_GLOBAL_RUN_ARGS -i -a stdin $IMAGE /bin/bash -c "$CMD") test $(docker wait $ID) -eq 0 -docker commit $ID $IMAGE > /dev/null +docker commit $ID $IMAGE >/dev/null ``` ### `post-release-dockerfile` @@ -919,7 +919,7 @@ verify_app_name "$APP" dokku_log_info1 "Running gulp" id=$(docker run $DOKKU_GLOBAL_RUN_ARGS -d $IMAGE /bin/bash -c "cd /app && gulp default") test $(docker wait $id) -eq 0 -docker commit $id $IMAGE > /dev/null +docker commit $id $IMAGE >/dev/null dokku_log_info1 "Building UI Complete" ``` @@ -995,12 +995,12 @@ verify_app_name "$APP" dokku_log_info1 "Installing GraphicsMagick..." CMD="cat > gm && \ - dpkg -s graphicsmagick > /dev/null 2>&1 || \ + dpkg -s graphicsmagick >/dev/null 2>&1 || \ (apt-get update && apt-get install -y graphicsmagick && apt-get clean)" ID=$(docker run $DOKKU_GLOBAL_RUN_ARGS -i -a stdin $IMAGE /bin/bash -c "$CMD") test $(docker wait $ID) -eq 0 -docker commit $ID $IMAGE > /dev/null +docker commit $ID $IMAGE >/dev/null ``` ### `pre-release-dockerfile` @@ -1152,7 +1152,7 @@ APP=${refname/*\//}.$reference_app if [[ ! -d "$DOKKU_ROOT/$APP" ]]; then REFERENCE_REPO="$DOKKU_ROOT/$reference_app" - git clone --bare --shared --reference "$REFERENCE_REPO" "$REFERENCE_REPO" "$DOKKU_ROOT/$APP" > /dev/null + git clone --bare --shared --reference "$REFERENCE_REPO" "$REFERENCE_REPO" "$DOKKU_ROOT/$APP" >/dev/null fi plugn trigger receive-app $APP $newrev ``` diff --git a/docs/getting-started/install/debian.md b/docs/getting-started/install/debian.md index 7b14a017f..163a3b752 100644 --- a/docs/getting-started/install/debian.md +++ b/docs/getting-started/install/debian.md @@ -4,7 +4,7 @@ As of 0.3.18, Dokku defaults to being installed via Debian package. While certai ```shell # install prerequisites -sudo apt-get update -qq > /dev/null +sudo apt-get update -qq >/dev/null sudo apt-get install -qq -y apt-transport-https # install docker @@ -12,10 +12,10 @@ wget -nv -O - https://get.docker.com/ | sh # install dokku wget -nv -O - https://packagecloud.io/dokku/dokku/gpgkey | apt-key add - -OS_ID="$(lsb_release -cs 2> /dev/null || echo "trusty")" +OS_ID="$(lsb_release -cs 2>/dev/null || echo "trusty")" echo "trusty utopic vivid wily xenial yakkety zesty artful bionic" | grep -q "$OS_ID" || OS_ID="trusty" echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ ${OS_ID} main" | sudo tee /etc/apt/sources.list.d/dokku.list -sudo apt-get update -qq > /dev/null +sudo apt-get update -qq >/dev/null sudo apt-get install -qq -y dokku sudo dokku plugin:install-dependencies --core ``` diff --git a/docs/home.html b/docs/home.html index a60ca97fa..7d4ced19d 100644 --- a/docs/home.html +++ b/docs/home.html @@ -164,7 +164,7 @@

$ - export OS_ID="$(lsb_release -cs 2> /dev/null || echo "trusty")" + export OS_ID="$(lsb_release -cs 2>/dev/null || echo "trusty")"

diff --git a/dokku b/dokku index a3f994450..7ef85d3ff 100755 --- a/dokku +++ b/dokku @@ -136,7 +136,7 @@ execute_dokku_cmd() { if [[ "$(readlink -f "$PLUGIN_ENABLED_PATH/${PLUGIN_NAME%%:*}")" == *core-plugins* ]]; then [[ ${argv[0]} == "$PLUGIN_CMD" ]] && shift 1 - if [[ ! -z $DOKKU_APP_NAME ]]; then + if [[ -n $DOKKU_APP_NAME ]]; then if [[ "$PLUGIN_CMD" == config* ]] && [[ ${argv[1]} == "--no-restart" ]]; then shift 1 set -- "--no-restart" "$DOKKU_APP_NAME" "$@" diff --git a/plugins/app-json/internal-functions b/plugins/app-json/internal-functions index cb735c0a2..c6c3694d7 100755 --- a/plugins/app-json/internal-functions +++ b/plugins/app-json/internal-functions @@ -10,7 +10,7 @@ get_phase_script() { declare IMAGE_TAG="$1" PHASE_SCRIPT_KEY="$2" local GET_PHASE_SCRIPT_TMP_WORK_DIR=$(mktemp -d "/tmp/dokku_get_phase_script.XXXX") local APP_JSON_FILE="$GET_PHASE_SCRIPT_TMP_WORK_DIR/app.json" - trap 'rm -rf "$GET_PHASE_SCRIPT_TMP_WORK_DIR" > /dev/null' RETURN INT TERM + trap 'rm -rf "$GET_PHASE_SCRIPT_TMP_WORK_DIR" >/dev/null' RETURN INT TERM copy_from_image "$IMAGE" "app.json" "$GET_PHASE_SCRIPT_TMP_WORK_DIR" 2>/dev/null || true diff --git a/plugins/certs/subcommands/add b/plugins/certs/subcommands/add index 6c1cae2eb..a40c2d8f4 100755 --- a/plugins/certs/subcommands/add +++ b/plugins/certs/subcommands/add @@ -44,7 +44,7 @@ certs_set() { elif is_tar_import; then local CERTS_SET_TMP_WORK_DIR=$(mktemp -d "/tmp/dokku_certs_set.XXXX") pushd "$CERTS_SET_TMP_WORK_DIR" &>/dev/null - trap 'popd &> /dev/null || true; rm -rf $CERTS_SET_TMP_WORK_DIR > /dev/null' RETURN + trap 'popd &>/dev/null || true; rm -rf $CERTS_SET_TMP_WORK_DIR >/dev/null' RETURN tar xvf - <&0 local CRT_FILE_SEARCH=$(find . -not -path '*/\.*' -type f | grep ".crt$") diff --git a/plugins/certs/subcommands/generate b/plugins/certs/subcommands/generate index 6c85c6768..984e74518 100755 --- a/plugins/certs/subcommands/generate +++ b/plugins/certs/subcommands/generate @@ -15,7 +15,7 @@ certs_generate_cmd() { if [[ ! -f "$APP_SSL_PATH/server.key" ]] && [[ ! -f "$APP_SSL_PATH/server.crt" ]]; then local CERTS_GENERATE_TMP_WORK_DIR=$(mktemp -d "/tmp/dokku_certs.XXXXXXXXX") pushd "$CERTS_GENERATE_TMP_WORK_DIR" >/dev/null - trap 'popd &> /dev/null || true; rm -rf "$CERTS_GENERATE_TMP_WORK_DIR" > /dev/null' INT TERM EXIT + trap 'popd &>/dev/null || true; rm -rf "$CERTS_GENERATE_TMP_WORK_DIR" >/dev/null' INT TERM EXIT openssl genrsa -out server.key 2048 openssl req -new -key server.key -out server.csr diff --git a/plugins/common/functions b/plugins/common/functions index 9478c2d7d..d8462f739 100755 --- a/plugins/common/functions +++ b/plugins/common/functions @@ -168,7 +168,7 @@ dokku_container_log_verbose_quiet() { is_valid_app_name() { declare desc="verify app name format" local APP="$1" - [[ ! -n "$APP" ]] && dokku_log_fail "APP must not be null" + [[ -z "$APP" ]] && dokku_log_fail "APP must not be null" if [[ "$APP" =~ ^[a-z].* ]] || [[ "$APP" =~ ^[0-9].* ]]; then if [[ ! $APP =~ [A-Z] ]] && [[ ! $APP =~ [:] ]]; then return 0 @@ -1049,7 +1049,7 @@ suppress_output() { declare desc="suppress all output from a given command unless there is an error" local TMP_COMMAND_OUTPUT TMP_COMMAND_OUTPUT=$(mktemp "/tmp/${FUNCNAME[0]}.XXXX") - trap 'rm -rf "$TMP_COMMAND_OUTPUT" > /dev/null' RETURN INT TERM EXIT + trap 'rm -rf "$TMP_COMMAND_OUTPUT" >/dev/null' RETURN INT TERM EXIT "$@" >"$TMP_COMMAND_OUTPUT" 2>&1 || { local exit_code="$?" diff --git a/plugins/docker-options/docker-args-deploy b/plugins/docker-options/docker-args-deploy index de2ae9e14..29f457ec0 100755 --- a/plugins/docker-options/docker-args-deploy +++ b/plugins/docker-options/docker-args-deploy @@ -32,7 +32,7 @@ docker_args() { local line read -r line || local DONE=true - [[ ! -n "$line" ]] && continue + [[ -z "$line" ]] && continue # shellcheck disable=SC1001 case "$line" in diff --git a/plugins/domains/functions b/plugins/domains/functions index 83d17e8e7..bc9545a8e 100755 --- a/plugins/domains/functions +++ b/plugins/domains/functions @@ -248,7 +248,7 @@ get_default_vhosts() { if ! ([[ "$VHOST" =~ $RE_IPV4 ]] || [[ "$VHOST" =~ $RE_IPV6 ]]); then local SUBDOMAIN=${APP/%\.${VHOST}/} local hostname=$(: | plugn trigger nginx-hostname "$APP" "$SUBDOMAIN" "$VHOST") - if [[ ! -n $hostname ]]; then + if [[ -z $hostname ]]; then if [[ "$APP" == *.* ]] && [[ "$SUBDOMAIN" == "$APP" ]]; then local hostname="${APP/\//-}" else diff --git a/plugins/enter/subcommands/default b/plugins/enter/subcommands/default index 22b27b6d5..a822824ec 100755 --- a/plugins/enter/subcommands/default +++ b/plugins/enter/subcommands/default @@ -25,7 +25,7 @@ enter_default_cmd() { if [[ "$3" == "--container-id" ]]; then local DOKKU_APP_CIDS=($(get_app_container_ids "$APP")) - if [[ ! -n "$4" ]]; then + if [[ -z "$4" ]]; then dokku_log_warn "No container id specified." dokku_log_fail "Available ids for app ($APP): ${DOKKU_APP_CIDS[*]}" fi @@ -38,7 +38,7 @@ enter_default_cmd() { else local DOKKU_APP_CIDS=($(get_app_container_ids "$APP" "$CONTAINER_TYPE")) local ID=${DOKKU_APP_CIDS[0]} - if [[ ! -n $ID ]]; then + if [[ -z $ID ]]; then dokku_log_warn "No containers found for type '$CONTAINER_TYPE'" dokku_log_fail "Available types for app ($APP): ${AVAILABLE_CONTAINER_TYPES[*]}" fi diff --git a/plugins/git/functions b/plugins/git/functions index e561e2c21..c84821477 100755 --- a/plugins/git/functions +++ b/plugins/git/functions @@ -32,7 +32,7 @@ git_build_app_repo() { # clean up after ourselves local GIT_BUILD_APP_REPO_TMP_WORK_DIR=$(mktemp -d "/tmp/dokku_git.XXXX") - trap 'rm -rf "$GIT_BUILD_APP_REPO_TMP_WORK_DIR" > /dev/null' RETURN INT TERM EXIT + trap 'rm -rf "$GIT_BUILD_APP_REPO_TMP_WORK_DIR" >/dev/null' RETURN INT TERM EXIT local TMP_TAG="dokku/$REV" chmod 755 "$GIT_BUILD_APP_REPO_TMP_WORK_DIR" diff --git a/plugins/nginx-vhosts/functions b/plugins/nginx-vhosts/functions index f7edb5189..661e7ed9c 100755 --- a/plugins/nginx-vhosts/functions +++ b/plugins/nginx-vhosts/functions @@ -304,7 +304,7 @@ nginx_build_config() { local NGINX_CONF=$(mktemp --tmpdir="${NGINX_BUILD_CONFIG_TMP_WORK_DIR}" "nginx.conf.XXXXXX") local CUSTOM_NGINX_TEMPLATE="$NGINX_BUILD_CONFIG_TMP_WORK_DIR/$NGINX_TEMPLATE_NAME" # shellcheck disable=SC2086 - trap 'rm -rf $NGINX_CONF $NGINX_BUILD_CONFIG_TMP_WORK_DIR > /dev/null' RETURN INT TERM EXIT + trap 'rm -rf $NGINX_CONF $NGINX_BUILD_CONFIG_TMP_WORK_DIR >/dev/null' RETURN INT TERM EXIT get_custom_nginx_template "$APP" "$CUSTOM_NGINX_TEMPLATE" 2>/dev/null if [[ -f "$CUSTOM_NGINX_TEMPLATE" ]]; then diff --git a/plugins/nginx-vhosts/internal-functions b/plugins/nginx-vhosts/internal-functions index 626d5b8b0..2b413c1c3 100755 --- a/plugins/nginx-vhosts/internal-functions +++ b/plugins/nginx-vhosts/internal-functions @@ -28,7 +28,7 @@ nginx_vhosts_is_valid_nginx_config_func() { declare APP="$1" local VALIDATE_TEMPLATE="$PLUGIN_AVAILABLE_PATH/nginx-vhosts/templates/validate.conf.sigil" local TMP_OUTPUT=$(mktemp "/tmp/${FUNCNAME[0]}.XXXX") - trap 'rm -rf "$TMP_OUTPUT" > /dev/null' RETURN INT TERM EXIT + trap 'rm -rf "$TMP_OUTPUT" >/dev/null' RETURN INT TERM EXIT sigil -f "$VALIDATE_TEMPLATE" NGINX_CONF="$DOKKU_ROOT/$APP/nginx.conf" | cat -s >"$TMP_OUTPUT" sudo "$NGINX_LOCATION" -t -c "$TMP_OUTPUT" 2>/dev/null diff --git a/plugins/ps/functions b/plugins/ps/functions index c43f6e346..7d3a7c196 100755 --- a/plugins/ps/functions +++ b/plugins/ps/functions @@ -69,7 +69,7 @@ generate_scale_file() { dokku_log_info1_quiet "DOKKU_SCALE file not found in app image. Generating one based on Procfile..." local GENERATE_SCALE_FILE_TMP_WORK_DIR=$(mktemp -d "/tmp/dokku_scale.XXXX") - trap 'rm -rf "$GENERATE_SCALE_FILE_TMP_WORK_DIR" > /dev/null' RETURN + trap 'rm -rf "$GENERATE_SCALE_FILE_TMP_WORK_DIR" >/dev/null' RETURN if [[ -f $DOKKU_PROCFILE ]]; then while read -r line || [[ -n "$line" ]]; do diff --git a/plugins/scheduler-docker-local/scheduler-inspect b/plugins/scheduler-docker-local/scheduler-inspect index 7eaaae32d..86c26b0b3 100755 --- a/plugins/scheduler-docker-local/scheduler-inspect +++ b/plugins/scheduler-docker-local/scheduler-inspect @@ -14,7 +14,7 @@ scheduler-docker-local-scheduler-inspect() { fi local TMP_INSPECT_CMD=$(mktemp "/tmp/${FUNCNAME[0]}.XXXX") - trap 'rm -rf "$TMP_INSPECT_CMD" > /dev/null' RETURN INT TERM EXIT + trap 'rm -rf "$TMP_INSPECT_CMD" >/dev/null' RETURN INT TERM EXIT cat >"$TMP_INSPECT_CMD" < /dev/null' RETURN INT TERM EXIT + trap 'rm -rf "$TAR_BUILD_TMP_WORK_DIR" >/dev/null' RETURN INT TERM EXIT # extract tar file chmod 755 "$TAR_BUILD_TMP_WORK_DIR" diff --git a/rpm.mk b/rpm.mk index 49bdda841..cb7c975dd 100644 --- a/rpm.mk +++ b/rpm.mk @@ -14,9 +14,9 @@ rpm-all: rpm-setup rpm-herokuish rpm-dokku rpm-plugn rpm-sshcommand rpm-sigil rp rpm-setup: @echo "-> Installing rpm build requirements" - @sudo apt-get update -qq > /dev/null - @sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get install -qq -y gcc git build-essential wget ruby-dev ruby1.9.1 rpm > /dev/null 2>&1 - @command -v fpm > /dev/null || sudo gem install fpm --no-ri --no-rdoc + @sudo apt-get update -qq >/dev/null + @sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get install -qq -y gcc git build-essential wget ruby-dev ruby1.9.1 rpm >/dev/null 2>&1 + @command -v fpm >/dev/null || sudo gem install fpm --no-ri --no-rdoc @ssh -o StrictHostKeyChecking=no git@github.com || true rpm-herokuish: @@ -29,9 +29,9 @@ rpm-herokuish: @echo 'systemctl start docker' >> /tmp/tmp/post-install @echo "sleep 5" >> /tmp/tmp/post-install @echo "echo 'Importing herokuish into docker (around 5 minutes)'" >> /tmp/tmp/post-install - @echo 'if [[ ! -z $${http_proxy+x} ]]; then echo "See the docker pull docs for proxy configuration"; fi' >> /tmp/tmp/post-install - @echo 'if [[ ! -z $${https_proxy+x} ]]; then echo "See the docker pull docs for proxy configuration"; fi' >> /tmp/tmp/post-install - @echo 'if [[ ! -z $${BUILDARGS+x} ]]; then echo "See the docker pull docs for proxy configuration"; fi' >> /tmp/tmp/post-install + @echo 'if [[ -n $${http_proxy+x} ]]; then echo "See the docker pull docs for proxy configuration"; fi' >> /tmp/tmp/post-install + @echo 'if [[ -n $${https_proxy+x} ]]; then echo "See the docker pull docs for proxy configuration"; fi' >> /tmp/tmp/post-install + @echo 'if [[ -n $${BUILDARGS+x} ]]; then echo "See the docker pull docs for proxy configuration"; fi' >> /tmp/tmp/post-install @echo "sudo docker pull gliderlabs/herokuish:v${HEROKUISH_VERSION} && sudo docker tag gliderlabs/herokuish:v${HEROKUISH_VERSION} gliderlabs/herokuish:latest" >> /tmp/tmp/post-install @echo "-> Creating $(HEROKUISH_RPM_PACKAGE_NAME)" diff --git a/tests.mk b/tests.mk index cbda94884..6638e6da6 100644 --- a/tests.mk +++ b/tests.mk @@ -2,7 +2,7 @@ SYSTEM := $(shell sh -c 'uname -s 2>/dev/null') bats: ifeq ($(SYSTEM),Darwin) -ifneq ($(shell bats --version > /dev/null 2>&1 ; echo $$?),0) +ifneq ($(shell bats --version >/dev/null 2>&1 ; echo $$?),0) brew install bats-core endif else @@ -12,7 +12,7 @@ else endif shellcheck: -ifneq ($(shell shellcheck --version > /dev/null 2>&1 ; echo $$?),0) +ifneq ($(shell shellcheck --version >/dev/null 2>&1 ; echo $$?),0) ifeq ($(SYSTEM),Darwin) brew install shellcheck else @@ -23,7 +23,7 @@ endif endif shfmt: -ifneq ($(shell shfmt --version > /dev/null 2>&1 ; echo $$?),0) +ifneq ($(shell shfmt --version >/dev/null 2>&1 ; echo $$?),0) ifeq ($(shfmt),Darwin) brew install shfmt else @@ -34,7 +34,7 @@ endif endif xmlstarlet: -ifneq ($(shell xmlstarlet --version > /dev/null 2>&1 ; echo $$?),0) +ifneq ($(shell xmlstarlet --version >/dev/null 2>&1 ; echo $$?),0) ifeq ($(SYSTEM),Darwin) brew install xmlstarlet else @@ -51,7 +51,7 @@ ifdef ENABLE_DOKKU_TRACE echo "export DOKKU_TRACE=1" >> /home/dokku/dokkurc endif @echo "Setting dokku.me in /etc/hosts" - sudo /bin/bash -c "[[ `ping -c1 dokku.me > /dev/null 2>&1; echo $$?` -eq 0 ]] || echo \"127.0.0.1 dokku.me *.dokku.me www.test.app.dokku.me\" >> /etc/hosts" + sudo /bin/bash -c "[[ `ping -c1 dokku.me >/dev/null 2>&1; echo $$?` -eq 0 ]] || echo \"127.0.0.1 dokku.me *.dokku.me www.test.app.dokku.me\" >> /etc/hosts" @echo "-----> Generating keypair..." mkdir -p /root/.ssh @@ -60,7 +60,7 @@ endif chmod 600 /root/.ssh/dokku_test_rsa* @echo "-----> Setting up ssh config..." -ifneq ($(shell ls /root/.ssh/config > /dev/null 2>&1 ; echo $$?),0) +ifneq ($(shell ls /root/.ssh/config >/dev/null 2>&1 ; echo $$?),0) echo "Host dokku.me \\r\\n RequestTTY yes \\r\\n IdentityFile /root/.ssh/dokku_test_rsa" >> /root/.ssh/config echo "Host 127.0.0.1 \\r\\n Port 22333 \\r\\n RequestTTY yes \\r\\n IdentityFile /root/.ssh/dokku_test_rsa" >> /root/.ssh/config else ifeq ($(shell grep dokku.me /root/.ssh/config),) @@ -80,8 +80,8 @@ endif cat /root/.ssh/dokku_test_rsa.pub | sudo sshcommand acl-add dokku test @echo "-----> Intitial SSH connection to populate known_hosts..." - ssh -o StrictHostKeyChecking=no dokku@dokku.me help > /dev/null - ssh -o StrictHostKeyChecking=no dokku@127.0.0.1 help > /dev/null + ssh -o StrictHostKeyChecking=no dokku@dokku.me help >/dev/null + ssh -o StrictHostKeyChecking=no dokku@127.0.0.1 help >/dev/null ifeq ($(shell grep dokku.me /home/dokku/VHOST 2>/dev/null),) @echo "-----> Setting default VHOST to dokku.me..." diff --git a/tests/bats-exec-test-single b/tests/bats-exec-test-single index 762fc2df5..2bd362b79 100755 --- a/tests/bats-exec-test-single +++ b/tests/bats-exec-test-single @@ -44,7 +44,7 @@ main() { fi TMP_OUTPUT=$(mktemp "/tmp/${FUNCNAME[0]}.XXXX") - trap 'rm -rf "$TMP_OUTPUT" > /dev/null' RETURN INT TERM EXIT + trap 'rm -rf "$TMP_OUTPUT" >/dev/null' RETURN INT TERM EXIT /usr/local/libexec/bats-preprocess <"$TEST_FILE" >"$TMP_OUTPUT" AVAILABLE_TESTS="$(fn-available-tests "$TMP_OUTPUT")" diff --git a/tests/test_deploy b/tests/test_deploy index f7e605b5c..20e36b2c4 100755 --- a/tests/test_deploy +++ b/tests/test_deploy @@ -30,7 +30,7 @@ TMP=$(mktemp -d "/tmp/$TARGET.XXXXX") rmdir "$TMP" && cp -r "$(dirname "$SELF")/$APP" "$TMP" pushd "$TMP" &>/dev/null || exit 1 -trap 'popd &> /dev/null || true; rm -rf "$TMP"' INT TERM EXIT +trap 'popd &>/dev/null || true; rm -rf "$TMP"' INT TERM EXIT git init git config user.email "robot@example.com" diff --git a/tests/unit/10_checks.bats b/tests/unit/10_checks.bats index 7f5f75782..51c055e03 100644 --- a/tests/unit/10_checks.bats +++ b/tests/unit/10_checks.bats @@ -17,7 +17,7 @@ teardown() { } @test "(checks) checks" { - run /bin/bash -c "dokku checks $TEST_APP 2> /dev/null | grep $TEST_APP | xargs" + run /bin/bash -c "dokku checks $TEST_APP 2>/dev/null | grep $TEST_APP | xargs" echo "output: $output" echo "status: $status" assert_output "$TEST_APP none none" diff --git a/tests/unit/10_tar.bats b/tests/unit/10_tar.bats index 7b2fe1fc4..3fe8204ca 100644 --- a/tests/unit/10_tar.bats +++ b/tests/unit/10_tar.bats @@ -17,8 +17,8 @@ deploy_app_tar() { TMP=$(mktemp -d "/tmp/dokku.me.XXXXX") rmdir "$TMP" && cp -r "${BATS_TEST_DIRNAME}/../../tests/apps/$APP_TYPE" "$TMP" - pushd "$TMP" &> /dev/null || exit 1 - trap 'popd &> /dev/null || true; rm -rf "$TMP"' RETURN INT TERM + pushd "$TMP" &>/dev/null || exit 1 + trap 'popd &>/dev/null || true; rm -rf "$TMP"' RETURN INT TERM shift 1 tar c . $* | ssh dokku@dokku.me tar:in $TEST_APP || destroy_app $? diff --git a/tests/unit/20_docker-options.bats b/tests/unit/20_docker-options.bats index 64c14ceb6..1f568d0e6 100644 --- a/tests/unit/20_docker-options.bats +++ b/tests/unit/20_docker-options.bats @@ -69,7 +69,7 @@ teardown() { echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "dokku docker-options $TEST_APP 2> /dev/null | xargs" + run /bin/bash -c "dokku docker-options $TEST_APP 2>/dev/null | xargs" echo "output: $output" echo "status: $status" assert_output "Deploy options: --restart=on-failure:10" @@ -88,7 +88,7 @@ teardown() { echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "dokku docker-options $TEST_APP build 2> /dev/null" + run /bin/bash -c "dokku docker-options $TEST_APP build 2>/dev/null" echo "output: $output" echo "status: $status" assert_output "Build options: none" @@ -107,7 +107,7 @@ teardown() { echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "dokku docker-options $TEST_APP deploy 2> /dev/null | xargs" + run /bin/bash -c "dokku docker-options $TEST_APP deploy 2>/dev/null | xargs" echo "output: $output" echo "status: $status" assert_output "Deploy options: --restart=on-failure:10" @@ -126,7 +126,7 @@ teardown() { echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "dokku docker-options $TEST_APP run 2> /dev/null" + run /bin/bash -c "dokku docker-options $TEST_APP run 2>/dev/null" echo "output: $output" echo "status: $status" assert_output "Run options: none" diff --git a/tests/unit/20_domains.bats b/tests/unit/20_domains.bats index 06029f61a..8c05f8994 100644 --- a/tests/unit/20_domains.bats +++ b/tests/unit/20_domains.bats @@ -18,7 +18,7 @@ teardown() { @test "(domains) domains" { dokku domains:setup $TEST_APP - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null | grep ${TEST_APP}.dokku.me" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null | grep ${TEST_APP}.dokku.me" echo "output: $output" echo "status: $status" assert_output "${TEST_APP}.dokku.me" @@ -45,7 +45,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null" echo "output: $output" echo "status: $status" assert_success @@ -61,7 +61,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null" echo "output: $output" echo "status: $status" assert_success @@ -101,7 +101,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null" echo "output: $output" echo "status: $status" assert_success @@ -119,7 +119,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null" echo "output: $output" echo "status: $status" assert_success @@ -139,7 +139,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null" echo "output: $output" echo "status: $status" assert_success @@ -157,7 +157,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null" echo "output: $output" echo "status: $status" assert_success @@ -178,7 +178,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null" echo "output: $output" echo "status: $status" assert_success @@ -191,7 +191,7 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "dokku domains 2> /dev/null | egrep -qw '^global.dokku.me\$'" + run /bin/bash -c "dokku domains 2>/dev/null | egrep -qw '^global.dokku.me\$'" echo "output: $output" echo "status: $status" assert_success @@ -203,17 +203,17 @@ teardown() { echo "status: $status" assert_success - run /bin/bash -c "dokku domains 2> /dev/null | grep -q global1.dokku.me" + run /bin/bash -c "dokku domains 2>/dev/null | grep -q global1.dokku.me" echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "dokku domains 2> /dev/null | grep -q global2.dokku.me" + run /bin/bash -c "dokku domains 2>/dev/null | grep -q global2.dokku.me" echo "output: $output" echo "status: $status" assert_success - run /bin/bash -c "dokku domains 2> /dev/null | grep -q global3.dokku.me" + run /bin/bash -c "dokku domains 2>/dev/null | grep -q global3.dokku.me" echo "output: $output" echo "status: $status" assert_success @@ -239,7 +239,7 @@ teardown() { dokku domains:setup $TEST_APP - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null" echo "output: $output" echo "status: $status" assert_success @@ -260,7 +260,7 @@ teardown() { dokku domains:setup $TEST_APP - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null" echo "output: $output" echo "status: $status" assert_success diff --git a/tests/unit/20_network.bats b/tests/unit/20_network.bats index 20641f277..19e9dc118 100644 --- a/tests/unit/20_network.bats +++ b/tests/unit/20_network.bats @@ -24,7 +24,7 @@ assert_nonssl_domain() { assert_app_domain() { local domain=$1 - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null | grep -xF ${domain}" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null | grep -xF ${domain}" echo "output: $output" echo "status: $status" assert_output "${domain}" diff --git a/tests/unit/40_proxy.bats b/tests/unit/40_proxy.bats index 4c842542d..3b53ee724 100644 --- a/tests/unit/40_proxy.bats +++ b/tests/unit/40_proxy.bats @@ -24,7 +24,7 @@ assert_nonssl_domain() { assert_app_domain() { local domain=$1 - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null | grep -xF ${domain}" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null | grep -xF ${domain}" echo "output: $output" echo "status: $status" assert_output "${domain}" diff --git a/tests/unit/test_helper.bash b/tests/unit/test_helper.bash index 81c54050c..e09af6ab0 100644 --- a/tests/unit/test_helper.bash +++ b/tests/unit/test_helper.bash @@ -196,7 +196,7 @@ assert_nonssl_domain() { assert_app_domain() { local domain=$1 - run /bin/bash -c "dokku domains $TEST_APP 2> /dev/null | grep -xF ${domain}" + run /bin/bash -c "dokku domains $TEST_APP 2>/dev/null | grep -xF ${domain}" echo "output: $output" echo "status: $status" assert_output "${domain}" @@ -224,7 +224,7 @@ deploy_app() { [[ -n "$CUSTOM_TEMPLATE" ]] && $CUSTOM_TEMPLATE $TEST_APP $TMP/$CUSTOM_PATH pushd "$TMP" &>/dev/null || exit 1 - trap 'popd &> /dev/null || true; rm -rf "$TMP"' RETURN INT TERM + trap 'popd &>/dev/null || true; rm -rf "$TMP"' RETURN INT TERM git init git config user.email "robot@example.com"