From 7e9400406ab4a7213d4ca1c7af576bfa601a1712 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Tue, 7 Mar 2017 16:29:13 +0100 Subject: Allowing multiple container commands to be executed in a row. Signed-off-by: Daniel Baumann --- bin/container | 103 ++++++++++++++++++++++++++++++---------------------------- 1 file changed, 53 insertions(+), 50 deletions(-) (limited to 'bin') diff --git a/bin/container b/bin/container index a23f274..1b57193 100755 --- a/bin/container +++ b/bin/container @@ -33,66 +33,69 @@ then fi # Command -COMMAND="${1}" - -if [ ! -e "/usr/lib/${SOFTWARE}/${PROGRAM}/${COMMAND}" ] -then - echo "'${COMMAND}': no such ${PROGRAM} command" >&2 - exit 1 -fi +COMMANDS="${1}" # Options shift 1 OPTIONS="${@}" -# Pre hooks -for FILE in "${HOOKS}/pre-${PROGRAM}".* "${HOOKS}/${NAME}.pre-${PROGRAM}" +for COMMAND in $(echo ${COMMANDS} | sed -e 's|,| |g') do - if [ -x "${FILE}" ] + if [ ! -e "/usr/lib/${SOFTWARE}/${PROGRAM}/${COMMAND}" ] then - "${FILE}" + echo "'${COMMAND}': no such ${PROGRAM} command" >&2 + exit 1 fi -done -# Notification -if echo "${OPTIONS}" | grep -qs "\--no-notification" -then - OPTIONS="$(echo "${OPTIONS}" | sed -e 's|--no-notification||')" -else - case "${COMMAND}" in - create|remove|rm|restart|start|stop) - USER="${SUDO_USER:-${USER}}" - DATE="$(date +%Y-%m-%d\ %H:%M:%S)" - HOST="$(hostname -f)" - - # logfile - echo "${DATE} ${HOST} ${USER} ${PROGRAM} ${COMMAND} ${OPTIONS}" >> "/var/log/${SOFTWARE}/${PROGRAM}.log" - - # irc - if [ -e /usr/bin/irk ] && [ -e "/etc/default/${SOFTWARE}" ] - then - . /etc/default/${SOFTWARE} - - if [ -n "${IRK_TARGETS}" ] + # Pre hooks + for FILE in "${HOOKS}/pre-${PROGRAM}".* "${HOOKS}/${NAME}.pre-${PROGRAM}" + do + if [ -x "${FILE}" ] + then + "${FILE}" + fi + done + + # Notification + if echo "${OPTIONS}" | grep -qs "\--no-notification" + then + OPTIONS="$(echo "${OPTIONS}" | sed -e 's|--no-notification||')" + else + case "${COMMAND}" in + create|remove|rm|restart|start|stop) + USER="${SUDO_USER:-${USER}}" + DATE="$(date +%Y-%m-%d\ %H:%M:%S)" + HOST="$(hostname -f)" + + # logfile + echo "${DATE} ${HOST} ${USER} ${PROGRAM} ${COMMAND} ${OPTIONS}" >> "/var/log/${SOFTWARE}/${PROGRAM}.log" + + # irc + if [ -e /usr/bin/irk ] && [ -e "/etc/default/${SOFTWARE}" ] then - for TARGET in ${IRK_TARGETS} - do - irk ${TARGET} "\x0300${USER}\x03@\x0312${HOST}:\x03 \x0303${PROGRAM}\x03 \x0307${COMMAND}\x03 ${OPTIONS}" - done + . /etc/default/${SOFTWARE} + + if [ -n "${IRK_TARGETS}" ] + then + for TARGET in ${IRK_TARGETS} + do + irk ${TARGET} "\x0300${USER}\x03@\x0312${HOST}:\x03 \x0303${PROGRAM}\x03 \x0307${COMMAND}\x03 ${OPTIONS}" + done + fi fi - fi - ;; - esac -fi - -# Run -exec "/usr/lib/${SOFTWARE}/${PROGRAM}/${COMMAND}" "${OPTIONS}" - -# Post hooks -for FILE in "${HOOKS}/post-${PROGRAM}".* "${HOOKS}/${NAME}.post-${PROGRAM}" -do - if [ -x "${FILE}" ] - then - "${FILE}" + ;; + esac fi + + # Run + exec "/usr/lib/${SOFTWARE}/${PROGRAM}/${COMMAND}" "${OPTIONS}" + + # Post hooks + for FILE in "${HOOKS}/post-${PROGRAM}".* "${HOOKS}/${NAME}.post-${PROGRAM}" + do + if [ -x "${FILE}" ] + then + "${FILE}" + fi + done done -- cgit v1.2.3