From 5d3d75292ccf8c9511567b89f4f266610c76b26c Mon Sep 17 00:00:00 2001 From: buanet Date: Mon, 30 Aug 2021 23:13:35 +0200 Subject: [PATCH] small changes --- .github/workflows/build-debian-image-dev.yml | 2 +- debian/scripts/iobroker_startup.sh | 106 +++++++++---------- debian/scripts/maintenance.sh | 39 +++++-- 3 files changed, 83 insertions(+), 64 deletions(-) diff --git a/.github/workflows/build-debian-image-dev.yml b/.github/workflows/build-debian-image-dev.yml index 929bbaa..a8dc75d 100644 --- a/.github/workflows/build-debian-image-dev.yml +++ b/.github/workflows/build-debian-image-dev.yml @@ -8,7 +8,7 @@ on: - dev jobs: - bulid-dev-image: + bulid-dev-node14-image: runs-on: ubuntu-latest steps: - name: Checkout repo (dev) diff --git a/debian/scripts/iobroker_startup.sh b/debian/scripts/iobroker_startup.sh index 2962c87..b6f6dc1 100644 --- a/debian/scripts/iobroker_startup.sh +++ b/debian/scripts/iobroker_startup.sh @@ -24,54 +24,54 @@ dati=`date '+%Y-%m-%d %H:%M:%S'` # Logging header echo ' ' -echo "$(printf -- '-%.0s' {1..60})" -echo -n "$(printf -- '-%.0s' {1..15})" && echo -n " "$dati" " && echo "$(printf -- '-%.0s' {1..15})" -echo "$(printf -- '-%.0s' {1..60})" +echo "$(printf -- '-%.0s' {1..80})" +echo -n "$(printf -- '-%.0s' {1..25})" && echo -n " "$dati" " && echo "$(printf -- '-%.0s' {1..25})" +echo "$(printf -- '-%.0s' {1..80})" echo ' ' -echo "$(printf -- '-%.0s' {1..60})" -echo "----- Welcome to your ioBroker-container! -----" -echo "----- Startupscript is now running. -----" -echo "----- Please be patient! -----" -echo "$(printf -- '-%.0s' {1..60})" +echo "$(printf -- '-%.0s' {1..80})" +echo "----- Welcome to your ioBroker-container! -----" +echo "----- Startupscript is now running. -----" +echo "----- Please be patient! -----" +echo "$(printf -- '-%.0s' {1..80})" echo ' ' -echo "$(printf -- '-%.0s' {1..60})" -echo "----- Debugging information -----" -echo "----- -----" -echo "----- System -----" -echo -n "----- " && echo -n "$(printf "%-10s %-23s" arch: $(uname -m))" && echo " -----" -echo "----- -----" -echo "----- Docker-Image -----" -echo -n "----- " && echo -n "$(printf "%-10s %-23s" image: ${VERSION})" && echo " -----" -echo -n "----- " && echo -n "$(printf "%-10s %-23s" build: ${BUILD})" && echo " -----" -echo "----- -----" -echo "----- Versions -----" -echo -n "----- " && echo -n "$(printf "%-10s %-23s" node: $(node -v))" && echo " -----" -echo -n "----- " && echo -n "$(printf "%-10s %-23s" npm: $(npm -v))" && echo " -----" -echo "----- -----" -echo "----- ENV -----" -if [ "$adminport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_ADMINPORT: $adminport)" && echo " -----"; fi -if [ "$avahi" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" AVAHI: $avahi)" && echo " -----"; fi -if [ "$multihost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_MULTIHOST: $multihost)" && echo " -----"; fi -if [ "$objectsdbhost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_OBJECTSDB_HOST: $objectsdbhost)" && echo " -----"; fi -if [ "$objectsdbport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_OBJECTSDB_PORT: $objectsdbport)" && echo " -----"; fi -if [ "$objectsdbtype" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_OBJECTSDB_TYPE: $objectsdbtype)" && echo " -----"; fi -if [ "$packages" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" PACKAGES: $packages)" && echo " -----"; fi -if [ "$setgid" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETGID: $setgid)" && echo " -----"; fi -if [ "$setuid" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" SETUID: $setuid)" && echo " -----"; fi -if [ "$statesdbhost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_STATESDB_HOST: $statesdbhost)" && echo " -----"; fi -if [ "$statesdbport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_STATESDB_PORT: $statesdbport)" && echo " -----"; fi -if [ "$statesdbtype" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" IOB_STATESDB_TYPE: $statesdbtype)" && echo " -----"; fi -if [ "$usbdevices" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" USBDEVICES: $usbdevices)" && echo " -----"; fi -if [ "$zwave" != "" ]; then echo -n "----- " && echo -n "$(printf "%-10s %-23s" ZWAVE: $zwave)" && echo " -----"; fi -echo "$(printf -- '-%.0s' {1..60})" +echo "$(printf -- '-%.0s' {1..80})" +echo "----- Debugging information -----" +echo "----- -----" +echo "----- System -----" +echo -n "----- " && echo -n "$(printf "%-20s %-28s" arch: $(uname -m))" && echo " -----" +echo "----- -----" +echo "----- Docker-Image -----" +echo -n "----- " && echo -n "$(printf "%-20s %-28s" image: ${VERSION})" && echo " -----" +echo -n "----- " && echo -n "$(printf "%-20s %-28s" build: ${BUILD})" && echo " -----" +echo "----- -----" +echo "----- Versions -----" +echo -n "----- " && echo -n "$(printf "%-20s %-28s" node: $(node -v))" && echo " -----" +echo -n "----- " && echo -n "$(printf "%-20s %-28s" npm: $(npm -v))" && echo " -----" +echo "----- -----" +echo "----- ENV -----" +if [ "$adminport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_ADMINPORT: $adminport)" && echo " -----"; fi +if [ "$avahi" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" AVAHI: $avahi)" && echo " -----"; fi +if [ "$multihost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_MULTIHOST: $multihost)" && echo " -----"; fi +if [ "$objectsdbhost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_OBJECTSDB_HOST: $objectsdbhost)" && echo " -----"; fi +if [ "$objectsdbport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_OBJECTSDB_PORT: $objectsdbport)" && echo " -----"; fi +if [ "$objectsdbtype" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_OBJECTSDB_TYPE: $objectsdbtype)" && echo " -----"; fi +if [ "$packages" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" PACKAGES: $packages)" && echo " -----"; fi +if [ "$setgid" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" SETGID: $setgid)" && echo " -----"; fi +if [ "$setuid" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" SETUID: $setuid)" && echo " -----"; fi +if [ "$statesdbhost" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_HOST: $statesdbhost)" && echo " -----"; fi +if [ "$statesdbport" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_PORT: $statesdbport)" && echo " -----"; fi +if [ "$statesdbtype" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" IOB_STATESDB_TYPE: $statesdbtype)" && echo " -----"; fi +if [ "$usbdevices" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" USBDEVICES: $usbdevices)" && echo " -----"; fi +if [ "$zwave" != "" ]; then echo -n "----- " && echo -n "$(printf "%-20s %-28s" ZWAVE: $zwave)" && echo " -----"; fi +echo "$(printf -- '-%.0s' {1..80})" echo ' ' ##### # STEP 1 - Preparing container ##### -echo "$(printf -- '-%.0s' {1..60})" -echo "----- Step 1 of 5: Preparing container -----" -echo "$(printf -- '-%.0s' {1..60})" +echo "$(printf -- '-%.0s' {1..80})" +echo "----- Step 1 of 5: Preparing container -----" +echo "$(printf -- '-%.0s' {1..80})" echo ' ' # Adding ckeck file for easy docker detection by ioBroker @@ -122,9 +122,9 @@ cd /opt/iobroker ##### # Detecting ioBroker-Installation ##### -echo "$(printf -- '-%.0s' {1..60})" -echo "----- Step 2 of 5: Detecting ioBroker installation -----" -echo "$(printf -- '-%.0s' {1..60})" +echo "$(printf -- '-%.0s' {1..80})" +echo "----- Step 2 of 5: Detecting ioBroker installation -----" +echo "$(printf -- '-%.0s' {1..80})" echo ' ' if [ `find /opt/iobroker -type f | wc -l` -lt 1 ] @@ -176,9 +176,9 @@ echo ' ' ##### # Checking ioBroker-Installation ##### -echo "$(printf -- '-%.0s' {1..60})" -echo "----- Step 3 of 5: Checking ioBroker installation -----" -echo "$(printf -- '-%.0s' {1..60})" +echo "$(printf -- '-%.0s' {1..80})" +echo "----- Step 3 of 5: Checking ioBroker installation -----" +echo "$(printf -- '-%.0s' {1..80})" echo ' ' # (Re)Setting permissions to "/opt/iobroker" and "/opt/scripts" @@ -218,9 +218,9 @@ fi ##### # Setting up prerequisites for some ioBroker-adapters ##### -echo "$(printf -- '-%.0s' {1..60})" -echo "----- Step 4 of 5: Applying special settings -----" -echo "$(printf -- '-%.0s' {1..60})" +echo "$(printf -- '-%.0s' {1..80})" +echo "----- Step 4 of 5: Applying special settings -----" +echo "$(printf -- '-%.0s' {1..80})" echo ' ' echo "Some adapters have special requirements/ settings which can be activated by the use of environment variables." @@ -487,9 +487,9 @@ fi ##### # Starting ioBroker ##### -echo "$(printf -- '-%.0s' {1..60})" -echo "----- Step 5 of 5: ioBroker startup -----" -echo "$(printf -- '-%.0s' {1..60})" +echo "$(printf -- '-%.0s' {1..80})" +echo "----- Step 5 of 5: ioBroker startup -----" +echo "$(printf -- '-%.0s' {1..80})" echo ' ' echo "Starting ioBroker..." echo ' ' diff --git a/debian/scripts/maintenance.sh b/debian/scripts/maintenance.sh index 07b9f19..6d384db 100644 --- a/debian/scripts/maintenance.sh +++ b/debian/scripts/maintenance.sh @@ -4,9 +4,7 @@ ##### default settings ##### ############################ -autoconfirm=no # yould be set to true by commandline option -switch=none - +autoconfirm=no # could be set to true by commandline option #################################### ##### declaration of functions ##### @@ -86,17 +84,33 @@ switch_on() { # turn maintenance mode OFF switch_off() { - echo 'You are now going to deactivate maintenance mode for this container.' - echo 'Depending on the restart policy, your container will be stopped/ restarted immediately.' - read -p 'Do you want to continue [yes/no]? ' A - if [ "$A" == "y" ] || [ "$A" == "Y" ] || [ "$A" == "yes" ] + if [ $(cat /opt/scripts/.docker_config/.healthcheck) == 'maintenance' ] && [ "$autoconfirm" == "no" ] # maintenance mode ON / autoconfirm = no then + echo 'You are now going to deactivate maintenance mode for this container.' + echo 'Depending on the restart policy, your container will be stopped/ restarted immediately.' + read -p 'Do you want to continue [yes/no]? ' A + if [ "$A" == "y" ] || [ "$A" == "Y" ] || [ "$A" == "yes" ] + then + echo 'Deactivating maintenance mode and forcing container to stop/ restart...' + echo "stopping" > /opt/scripts/.docker_config/.healthcheck + pkill -u root + echo 'Done.' + exit 0 + else + exit 0 + fi + elif [ $(cat /opt/scripts/.docker_config/.healthcheck) == 'maintenance' ] && [ "$autoconfirm" == "yes" ] # maintenance mode ON / autoconfirm = yes + then + echo 'You are now going to deactivate maintenance mode for this container.' + echo 'Depending on the restart policy, your container will be stopped/ restarted immediately.' + echo 'This command was already confirmed by -y or --yes option.' echo 'Deactivating maintenance mode and forcing container to stop/ restart...' echo "stopping" > /opt/scripts/.docker_config/.healthcheck pkill -u root + echo 'Done.' exit 0 else - exit 0 + echo 'Maintenance mode is already turned OFF.' fi } @@ -147,22 +161,27 @@ for i in $reverse; do case $i in help|-h|--help) display_help # calling function to display help text - exit + break ;; status) check_status # calling function to check maintenance mode status + break ;; on) switch_on # calling function to switch maintenance mode on + break ;; off) switch_off # calling function to switch maintenance mode off + break ;; upgrade) upgrade # calling function to upgrade js-controller + break ;; -y|--yes) autoconfirm=yes # setting autoconfrm option to "yes" + shift ;; -a=*|--argument=*) # dummy exaple for parsing option with value ARGUMENT="${i#*=}" @@ -182,4 +201,4 @@ for i in $reverse; do esac done -exit 0 +exit 0 \ No newline at end of file