From 1fb070df550042994fef71462e264653d22f85dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20Kn=C3=B6ppler?= <6317548+theCalcaholic@users.noreply.github.com> Date: Sun, 18 Aug 2024 17:04:12 +0200 Subject: [PATCH] ncp-update-nc: fix update termination detection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Tobias Knöppler <6317548+theCalcaholic@users.noreply.github.com> --- bin/ncp-update-nc | 33 ++++++++++++++++++++++++++++----- build/armbian/armbian_version | 1 + build/build-SD-armbian.sh | 2 +- 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 build/armbian/armbian_version diff --git a/bin/ncp-update-nc b/bin/ncp-update-nc index 03cbe5da..97007e6e 100755 --- a/bin/ncp-update-nc +++ b/bin/ncp-update-nc @@ -23,19 +23,42 @@ BIN="${0##*/}" VER="$1" [[ "$VER" == "" ]] && { echo "Usage ${BIN} "; exit 1; } -if systemctl is-active ncp-update-nc >/dev/null 2>&1 +connect_to_nc_update() { + tail -f "/var/log/ncp-update-nc.log" & + tail_pid=$! + while [[ "$(systemctl is-active ncp-update-nc ||:)" == "active" ]] + do + sleep 3 + done + + kill "$tail_pid" + if [[ "$(systemctl is-active ncp-update-nc ||:)" == "inactive" ]] + then + echo "Nextcloud update finished successfully." + return 0 + elif [[ "$(systemctl is-active ncp-update-nc ||:)" == "failed" ]] + then + echo "Nextcloud update failed." + return 1 + else + echo "Nextcloud update was not found or failed (unexpected status: '$(systemctl is-active ncp-update-nc ||:)')" + fi +} + +if [[ "$(systemctl is-active ncp-update-nc ||:)" == "activating" ]] then echo "Existing ncp-update-nc process detected. Connecting..." - tail -f "/var/log/ncp-update-nc.log" + connect_to_nc_update exit 0 fi -systemd-run -u 'ncp-update-nc' -p "RemainAfterExit=yes" bash -c "DBG='${DBG:-}' /usr/local/bin/ncp-update-nc.d/update-nc.sh '${VER}' |& tee /var/log/ncp-update-nc.log" +systemd-run -u 'ncp-update-nc' bash -c "DBG='${DBG:-}' /usr/local/bin/ncp-update-nc.d/update-nc.sh '${VER}' |& tee /var/log/ncp-update-nc.log" sleep 5 -if ! systemctl is-active ncp-update-nc >/dev/null 2>&1 +if [[ "$(systemctl is-active ncp-update-nc ||:)" != "activating" ]] then echo "Failed to start ncp-update-nc" systemctl status --no-pager ncp-update-nc fi -tail -f "/var/log/ncp-update-nc.log" + +connect_to_nc_update diff --git a/build/armbian/armbian_version b/build/armbian/armbian_version new file mode 100644 index 00000000..3e529118 --- /dev/null +++ b/build/armbian/armbian_version @@ -0,0 +1 @@ +v24.08 \ No newline at end of file diff --git a/build/build-SD-armbian.sh b/build/build-SD-armbian.sh index 69dae681..a642411d 100755 --- a/build/build-SD-armbian.sh +++ b/build/build-SD-armbian.sh @@ -31,7 +31,7 @@ prepare_dirs # tmp cache output # get latest armbian [[ -d armbian ]] || { - git clone --depth 1 --branch v24.08 https://github.com/armbian/build armbian + git clone --depth 1 --branch "$(cat "${0}/../armbian/armbian_version")" https://github.com/armbian/build armbian } #( cd armbian && git pull --ff-only --tags && git checkout v23.02 ) #sed -i -e '/export rootfs_size=/s/du -sm/du --apparent-size -sm/' armbian/lib/functions/image/partitioning.sh