setup.sh improved (#1886)

* setup.sh improved

* $DIR must come first

* function restored

* USING_SELINUX renamed
This commit is contained in:
Casper 2021-04-07 11:11:54 +02:00 committed by GitHub
parent 44bee0f935
commit c7a798b623
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 19 additions and 27 deletions

View File

@ -19,7 +19,6 @@ RESET="\e[0m"
set -euEo pipefail set -euEo pipefail
trap '__log_err "${FUNCNAME[0]:-?}" "${BASH_COMMAND:-?}" "${LINENO:-?}" "${?:-?}"' ERR trap '__log_err "${FUNCNAME[0]:-?}" "${BASH_COMMAND:-?}" "${LINENO:-?}" "${?:-?}"' ERR
trap '_unset_vars || :' EXIT
function __log_err function __log_err
{ {
@ -35,39 +34,32 @@ the version / tag of docker-mailserver. Please read the
ly and use ./setup.sh help and read the VERSION section.\n" >&2 ly and use ./setup.sh help and read the VERSION section.\n" >&2
} }
function _unset_vars function _get_absolute_script_directory
{
unset CDIR CRI INFO IMAGE_NAME CONTAINER_NAME DEFAULT_CONFIG_PATH
unset USE_CONTAINER WISHED_CONFIG_PATH CONFIG_PATH VOLUME USE_TTY
unset SCRIPT USING_SELINUX
}
function _get_current_directory
{ {
if dirname "$(readlink -f "${0}")" &>/dev/null if dirname "$(readlink -f "${0}")" &>/dev/null
then then
CDIR="$(dirname "$(readlink -f "${0}")")" DIR="$(dirname "$(readlink -f "${0}")")"
elif realpath -e -L "${0}" &>/dev/null elif realpath -e -L "${0}" &>/dev/null
then then
CDIR="$(realpath -e -L "${0}")" DIR="$(realpath -e -L "${0}")"
CDIR="${CDIR%/setup.sh}" DIR="${DIR%/setup.sh}"
fi fi
} }
CDIR="$(pwd)" DIR="$(pwd)"
_get_current_directory _get_absolute_script_directory
CRI= CRI=
INFO=
IMAGE_NAME=
CONTAINER_NAME=
DEFAULT_CONFIG_PATH="${CDIR}/config"
USE_CONTAINER=false
WISHED_CONFIG_PATH=
CONFIG_PATH= CONFIG_PATH=
VOLUME= CONTAINER_NAME=
DEFAULT_CONFIG_PATH="${DIR}/config"
IMAGE_NAME=
INFO=
USE_CONTAINER=false
USE_TTY= USE_TTY=
USING_SELINUX= USE_SELINUX=
VOLUME=
WISHED_CONFIG_PATH=
function _check_root function _check_root
{ {
@ -158,7 +150,7 @@ ${ORANGE}OPTIONS${RESET}
-p PATH -p PATH
Provides the config folder path. The default is Provides the config folder path. The default is
${WHITE}${CDIR}/config/${RESET} ${WHITE}${DIR}/config/${RESET}
${LBLUE}SELinux${RESET} ${LBLUE}SELinux${RESET}
-z -z
@ -244,7 +236,7 @@ function _docker_image
fi fi
${CRI} run --rm \ ${CRI} run --rm \
-v "${CONFIG_PATH}:/tmp/docker-mailserver${USING_SELINUX}" \ -v "${CONFIG_PATH}:/tmp/docker-mailserver${USE_SELINUX}" \
"${USE_TTY}" "${IMAGE_NAME}" "${@}" "${USE_TTY}" "${IMAGE_NAME}" "${@}"
fi fi
} }
@ -300,8 +292,8 @@ function _main
do do
case ${OPT} in case ${OPT} in
i ) IMAGE_NAME="${OPTARG}" ;; i ) IMAGE_NAME="${OPTARG}" ;;
z ) USING_SELINUX=":z" ;; z ) USE_SELINUX=":z" ;;
Z ) USING_SELINUX=":Z" ;; Z ) USE_SELINUX=":Z" ;;
c ) c )
# container specified, connect to running instance # container specified, connect to running instance
CONTAINER_NAME="${OPTARG}" CONTAINER_NAME="${OPTARG}"
@ -311,7 +303,7 @@ function _main
p ) p )
case "${OPTARG}" in case "${OPTARG}" in
/* ) WISHED_CONFIG_PATH="${OPTARG}" ;; /* ) WISHED_CONFIG_PATH="${OPTARG}" ;;
* ) WISHED_CONFIG_PATH="${CDIR}/${OPTARG}" ;; * ) WISHED_CONFIG_PATH="${DIR}/${OPTARG}" ;;
esac esac
if [[ ! -d ${WISHED_CONFIG_PATH} ]] if [[ ! -d ${WISHED_CONFIG_PATH} ]]