From 5d023bb8b502df8c95f0096cafe050de349e82c2 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 17 Sep 2022 06:58:14 +0200 Subject: Adding force and interactive options to container restart command. Signed-off-by: Daniel Baumann --- libexec/container/restart | 37 ++++++++++++++++++++++++++++++++++--- share/man/container-restart.1.rst | 6 ++++++ 2 files changed, 40 insertions(+), 3 deletions(-) diff --git a/libexec/container/restart b/libexec/container/restart index fcb28b8..0eb753c 100755 --- a/libexec/container/restart +++ b/libexec/container/restart @@ -31,8 +31,8 @@ Parameters () { OPTIONS_ALL="" - GETOPT_LONGOPTIONS="name:,verbose," - GETOPT_OPTIONS="n:,v," + GETOPT_LONGOPTIONS="name:,force,interactive,verbose," + GETOPT_OPTIONS="n:,f,i,v," PARAMETERS="$(getopt --longoptions ${GETOPT_LONGOPTIONS} --name=${COMMAND} --options ${GETOPT_OPTIONS} --shell sh -- ${@})" @@ -52,6 +52,20 @@ Parameters () shift 2 ;; + -f|--force) + FORCE="true" + shift 1 + + OPTIONS_ALL="${OPTIONS_ALL} --force" + ;; + + -i|--interactive) + INTERACTIVE="true" + shift 1 + + OPTIONS_ALL="${OPTIONS_ALL} --interactive" + ;; + -v|--verbose) VERBOSE="true" shift 1 @@ -74,7 +88,7 @@ Parameters () Usage () { - echo "Usage: ${PROGRAM} ${COMMAND} -n|--name NAME [-v|--verbose]" >&2 + echo "Usage: ${PROGRAM} ${COMMAND} -n|--name NAME [-f|--force] [-i|--interactive] [-v|--verbose]" >&2 echo echo "See ${COMMAND}(1), ${PROGRAM}(1) and ${PROJECT}(7) for more information." @@ -107,6 +121,23 @@ then exit 1 fi +if [ "${FORCE}" != "true" ] || [ "${INTERACTIVE}" = "true" ] +then + echo -n "'${NAME}': restart container '${NAME}' [y|N]? " + read STOP + + STOP="$(echo ${STOP} | tr '[A-Z]' '[a-z]')" + + case "${STOP}" in + y|yes) + ;; + + *) + exit 1 + ;; + esac +fi + # Pre hooks for FILE in "${HOOKS}/pre-${COMMAND}".* "${HOOKS}/${NAME}.pre-${COMMAND}" do diff --git a/share/man/container-restart.1.rst b/share/man/container-restart.1.rst index bb2d4f1..c52353d 100644 --- a/share/man/container-restart.1.rst +++ b/share/man/container-restart.1.rst @@ -47,6 +47,12 @@ The following **container restart** options are available: -n, --name='NAME': Specify container name. Specifying 'ALL' will restart all started container. +-f, --force: + Do not prompt before every restarting. + +-i, --interactive: + Prompt before every restarting (default). + -v, --verbose: Explain what is being done. -- cgit v1.2.3