#!/bin/sh for script in /.singularity.d/env/*.sh; do if [ -f "$script" ]; then . "$script" fi done # See https://github.com/sylabs/singularity/issues/2721, # as bash is often used as the current shell it may confuse # users when entering in singularity container via -s /bin/bash # implying to override PS1 set by singularity and we may end up # with a shell prompt identical to the host one, so we force PS1 # through bash PROMPT_COMMAND if test -z "${PROMPT_COMMAND:-}"; then export PROMPT_COMMAND="PS1=\"${PS1}\"; unset PROMPT_COMMAND" else export PROMPT_COMMAND="${PROMPT_COMMAND:-}; PROMPT_COMMAND=\"\${PROMPT_COMMAND%%; PROMPT_COMMAND=*}\"; PS1=\"${PS1}\"" fi if test -n "$SINGULARITY_SHELL" -a -x "$SINGULARITY_SHELL"; then exec $SINGULARITY_SHELL "$@" echo "ERROR: Failed running shell as defined by '\$SINGULARITY_SHELL'" 1>&2 exit 1 elif test -x /bin/bash; then SHELL=/bin/bash PS1="Singularity $SINGULARITY_NAME:\\w> " export SHELL PS1 exec /bin/bash --norc "$@" elif test -x /bin/sh; then SHELL=/bin/sh export SHELL exec /bin/sh "$@" else echo "ERROR: /bin/sh does not exist in container" 1>&2 fi exit 1