summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to '')
-rwxr-xr-xlibexec/container/update54
1 files changed, 51 insertions, 3 deletions
diff --git a/libexec/container/update b/libexec/container/update
index adfee65..077160c 100755
--- a/libexec/container/update
+++ b/libexec/container/update
@@ -28,8 +28,8 @@ HOOKS="/etc/${SOFTWARE}/hooks"
Parameters ()
{
- GETOPT_LONGOPTIONS="name:,full-upgrade,autoremove,purge,yes,"
- GETOPT_OPTIONS="n:,f,r,p,y,"
+ GETOPT_LONGOPTIONS="name:,full-upgrade,interactive,autoremove,purge,yes,"
+ GETOPT_OPTIONS="n:,f,i,r,p,y,"
PARAMETERS="$(getopt --longoptions ${GETOPT_LONGOPTIONS} --name=${COMMAND} --options ${GETOPT_OPTIONS} --shell sh -- ${@})"
@@ -54,6 +54,11 @@ Parameters ()
shift 1
;;
+ -i|--interactive)
+ INTERACTIVE="true"
+ shift 1
+ ;;
+
-r|--autoremove)
AUTOREMOVE="true"
shift 1
@@ -84,7 +89,7 @@ Parameters ()
Usage ()
{
- echo "Usage: ${PROGRAM} ${COMMAND} -n|--name NAME [-f|--full-upgrade] [-r|--autoremove] [-p|--purge] [-y|--yes]" >&2
+ echo "Usage: ${PROGRAM} ${COMMAND} -n|--name NAME [-f|--full-upgrade] [-i|--interactive] [-r|--autoremove] [-p|--purge] [-y|--yes]" >&2
echo
echo "See ${COMMAND}(1), ${PROGRAM}(1) and ${PROJECT}(7) for more information."
@@ -152,9 +157,52 @@ do
fi
done
+if [ $(echo ${NAMES} | wc -w) -gt 1 ]
+then
+ NAME_LOOP="true"
+else
+ NAME_LOOP="false"
+fi
+
# Run
for NAME in ${NAMES}
do
+ case "${INTERACTIVE}" in
+ true)
+ case "${NAME_LOOP}" in
+ true)
+ echo
+ ;;
+ esac
+
+ echo -n "'${NAME}': update container '${NAME}' [y|N|a]? "
+ read UPDATE
+
+ UPDATE="$(echo ${UPDATE} | tr '[A-Z]' '[a-z]')"
+
+ case "${UPDATE}" in
+ a|all)
+ INTERACTIVE="false"
+ ;;
+
+ y|yes)
+ ;;
+
+ *)
+ case "${NAME_LOOP}" in
+ true)
+ continue
+ ;;
+
+ *)
+ exit 1
+ ;;
+ esac
+ ;;
+ esac
+ ;;
+ esac
+
echo "################################################################################"
echo "Updating ${NAME}"
echo "################################################################################"