Add update forcing option

pull/6/head
Dominik Dzienia 7 months ago
parent 60b67ceb10
commit 8b9df0f7e6

@ -674,6 +674,7 @@ freshInstall=0
cachedMenuDomain=''
lastTimeSpaceInfo=0
diagnosticsSizeOk=0
forceUpdateCheck=0
MIKRUS_APIKEY=''
MIKRUS_HOST=''
@ -1105,12 +1106,12 @@ download_if_needed() {
local lastCheck=$(read_or_default "$UPDATES_DIR/timestamp")
local timestampNow=$(date +%s)
local updateCheck=$UPDATE_CHECK
if (((timestampNow - lastCheck) > updateCheck)) || [ $# -eq 1 ]; then
if (((timestampNow - lastCheck) > updateCheck)) || [ $# -eq 1 ] || (( forceUpdateCheck == 1 )); then
echo "$timestampNow" >"$UPDATES_DIR/timestamp"
ohai "Checking if new version is available..."
local onlineUpdated="$(curl -fsSL "https://gitea.dzienia.pl/shared/mikrus-installer/raw/branch/$UPDATE_CHANNEL/updated")"
local lastDownload=$(read_or_default "$UPDATES_DIR/downloaded")
if [ "$onlineUpdated" == "$lastDownload" ]; then
if [ "$onlineUpdated" == "$lastDownload" ] && (( forceUpdateCheck == 0 )); then
msgok "Latest update already downloaded"
else
echo "$onlineUpdated" >"$UPDATES_DIR/downloaded"
@ -1160,14 +1161,11 @@ update_if_needed() {
download_if_needed
local lastDownload=$(read_or_default "$UPDATES_DIR/downloaded" "")
local updateInstalled=$(read_or_default "$UPDATES_DIR/updated" "")
local lastDownload=$(read_or_default "$UPDATES_DIR/downloaded" "???")
local updateInstalled=$(read_or_default "$UPDATES_DIR/updated" "???")
if [ "$lastDownload" == "$updateInstalled" ]; then
if [ "$lastDownload" == "$updateInstalled" ] && (( forceUpdateCheck == 0 )) && [ $# -eq 0 ]; then
msgok "Scripts and config files are up to date"
if [ $# -eq 1 ]; then
okdlg "Aktualizacja skryptów" "$1"
fi
else
local changed=0
@ -1213,6 +1211,7 @@ update_if_needed() {
if [ "$changed" -eq 0 ]; then
if [ $# -eq 1 ]; then
msgok "Scripts and config files are up to date"
okdlg "Aktualizacja skryptów" "$1"
fi
else
@ -1221,8 +1220,13 @@ update_if_needed() {
okTxt="${TL}${uni_warn} Aktualizacja zrestartuje i zaktualizuje kontenery ${uni_warn}"
fi
local versionMsg="${TL}Build: ${updateInstalled}"
if [ ! "$lastDownload" == "$updateInstalled" ]; then
versionMsg="$(pad_multiline "${TL}Masz build: ${updateInstalled}${NL} Dostępny: ${lastDownload}")"
fi
yesnodlg "Aktualizacja skryptów" "$uni_confirm_upd" "$uni_resign" \
"Zalecana jest aktualizacja plików:" \
"Zalecana jest aktualizacja plików:${versionMsg}" \
"$(
pad_multiline \
"${TL}${uni_bullet}Skrypt instalacyjny: $msgInst" \
@ -1255,7 +1259,7 @@ update_if_needed() {
dotenv-tool -pr -o "$ENV_FILE_NS" -i "$UPDATES_DIR/deployment.env" "$ENV_FILE_NS"
fi
echo "$onlineUpdated" >"$UPDATES_DIR/updated"
echo "$lastDownload" >"$UPDATES_DIR/updated"
if ! [ "$instOnlineVer" == "$instLocalVer" ] || ! [ "$lastDownload" == "$updateInstalled" ]; then
ohai "Updating $TOOL_FILE"
@ -2325,6 +2329,7 @@ gather_diagnostics() {
local domain=$(get_td_domain)
local ns_tag=$(dotenv-tool -r get -f "$ENV_FILE_DEP" "NS_NIGHTSCOUT_TAG")
local mikrus_h=$(hostname)
local updateInstalled=$(read_or_default "$UPDATES_DIR/updated" "???")
local LOG_DIVIDER="======================================================="
@ -2334,6 +2339,7 @@ gather_diagnostics() {
echo " domena : $domain"
echo " wersja nightscout : $ns_tag"
echo " wersja nightscout-tool : $SCRIPT_VERSION ($SCRIPT_BUILD_TIME) $UPDATE_CHANNEL"
echo " build : ${updateInstalled}"
} >"$SUPPORT_LOG"
ohai "Zbieranie statusu usług"
@ -2872,7 +2878,9 @@ load_update_channel() {
}
startup_version() {
local updateInstalled=$(read_or_default "$UPDATES_DIR/updated" "???")
msgnote "nightscout-tool version $SCRIPT_VERSION ($SCRIPT_BUILD_TIME)"
msgnote "build ${updateInstalled}"
msgnote "$uni_copyright 2023-2024 Dominik Dzienia"
msgnote "Licensed under CC BY-NC-ND 4.0"
}
@ -2881,7 +2889,7 @@ parse_commandline_args() {
load_update_channel
CMDARGS=$(getopt --quiet -o wvdpc: --long watchdog,version,develop,production,channel: -n 'nightscout-tool' -- "$@")
CMDARGS=$(getopt --quiet -o wvdpuc: --long watchdog,version,develop,production,update,channel: -n 'nightscout-tool' -- "$@")
# shellcheck disable=SC2181
if [ $? != 0 ]; then
@ -2906,18 +2914,26 @@ parse_commandline_args() {
-d | --develop)
warn "Switching to DEVELOP update channel"
UPDATE_CHANNEL=develop
forceUpdateCheck=1
echo "$UPDATE_CHANNEL" >"$UPDATE_CHANNEL_FILE"
shift
;;
-p | --production)
warn "Switching to PRODUCTION update channel"
UPDATE_CHANNEL=master
forceUpdateCheck=1
echo "$UPDATE_CHANNEL" >"$UPDATE_CHANNEL_FILE"
shift
;;
-u | --update)
warn "Forcing update check"
forceUpdateCheck=1
shift
;;
-c | --channel)
shift # The arg is next in position args
UPDATE_CHANNEL_CANDIDATE=$1
forceUpdateCheck=1
[[ ! "$UPDATE_CHANNEL_CANDIDATE" =~ ^[a-z]{3,}$ ]] && {
echo "Incorrect channel name provided: $UPDATE_CHANNEL_CANDIDATE"

@ -658,6 +658,7 @@ freshInstall=0
cachedMenuDomain=''
lastTimeSpaceInfo=0
diagnosticsSizeOk=0
forceUpdateCheck=0
MIKRUS_APIKEY=''
MIKRUS_HOST=''
@ -1089,12 +1090,12 @@ download_if_needed() {
local lastCheck=$(read_or_default "$UPDATES_DIR/timestamp")
local timestampNow=$(date +%s)
local updateCheck=$UPDATE_CHECK
if (((timestampNow - lastCheck) > updateCheck)) || [ $# -eq 1 ]; then
if (((timestampNow - lastCheck) > updateCheck)) || [ $# -eq 1 ] || (( forceUpdateCheck == 1 )); then
echo "$timestampNow" >"$UPDATES_DIR/timestamp"
ohai "Checking if new version is available..."
local onlineUpdated="$(curl -fsSL "https://gitea.dzienia.pl/shared/mikrus-installer/raw/branch/$UPDATE_CHANNEL/updated")"
local lastDownload=$(read_or_default "$UPDATES_DIR/downloaded")
if [ "$onlineUpdated" == "$lastDownload" ]; then
if [ "$onlineUpdated" == "$lastDownload" ] && (( forceUpdateCheck == 0 )); then
msgok "Latest update already downloaded"
else
echo "$onlineUpdated" >"$UPDATES_DIR/downloaded"
@ -1144,14 +1145,11 @@ update_if_needed() {
download_if_needed
local lastDownload=$(read_or_default "$UPDATES_DIR/downloaded" "")
local updateInstalled=$(read_or_default "$UPDATES_DIR/updated" "")
local lastDownload=$(read_or_default "$UPDATES_DIR/downloaded" "???")
local updateInstalled=$(read_or_default "$UPDATES_DIR/updated" "???")
if [ "$lastDownload" == "$updateInstalled" ]; then
if [ "$lastDownload" == "$updateInstalled" ] && (( forceUpdateCheck == 0 )) && [ $# -eq 0 ]; then
msgok "Scripts and config files are up to date"
if [ $# -eq 1 ]; then
okdlg "Aktualizacja skryptów" "$1"
fi
else
local changed=0
@ -1197,6 +1195,7 @@ update_if_needed() {
if [ "$changed" -eq 0 ]; then
if [ $# -eq 1 ]; then
msgok "Scripts and config files are up to date"
okdlg "Aktualizacja skryptów" "$1"
fi
else
@ -1205,8 +1204,13 @@ update_if_needed() {
okTxt="${TL}${uni_warn} Aktualizacja zrestartuje i zaktualizuje kontenery ${uni_warn}"
fi
local versionMsg="${TL}Build: ${updateInstalled}"
if [ ! "$lastDownload" == "$updateInstalled" ]; then
versionMsg="$(pad_multiline "${TL}Masz build: ${updateInstalled}${NL} Dostępny: ${lastDownload}")"
fi
yesnodlg "Aktualizacja skryptów" "$uni_confirm_upd" "$uni_resign" \
"Zalecana jest aktualizacja plików:" \
"Zalecana jest aktualizacja plików:${versionMsg}" \
"$(
pad_multiline \
"${TL}${uni_bullet}Skrypt instalacyjny: $msgInst" \
@ -1239,7 +1243,7 @@ update_if_needed() {
dotenv-tool -pr -o "$ENV_FILE_NS" -i "$UPDATES_DIR/deployment.env" "$ENV_FILE_NS"
fi
echo "$onlineUpdated" >"$UPDATES_DIR/updated"
echo "$lastDownload" >"$UPDATES_DIR/updated"
if ! [ "$instOnlineVer" == "$instLocalVer" ] || ! [ "$lastDownload" == "$updateInstalled" ]; then
ohai "Updating $TOOL_FILE"
@ -2309,6 +2313,7 @@ gather_diagnostics() {
local domain=$(get_td_domain)
local ns_tag=$(dotenv-tool -r get -f "$ENV_FILE_DEP" "NS_NIGHTSCOUT_TAG")
local mikrus_h=$(hostname)
local updateInstalled=$(read_or_default "$UPDATES_DIR/updated" "???")
local LOG_DIVIDER="======================================================="
@ -2318,6 +2323,7 @@ gather_diagnostics() {
echo " domena : $domain"
echo " wersja nightscout : $ns_tag"
echo " wersja nightscout-tool : $SCRIPT_VERSION ($SCRIPT_BUILD_TIME) $UPDATE_CHANNEL"
echo " build : ${updateInstalled}"
} >"$SUPPORT_LOG"
ohai "Zbieranie statusu usług"
@ -2856,7 +2862,9 @@ load_update_channel() {
}
startup_version() {
local updateInstalled=$(read_or_default "$UPDATES_DIR/updated" "???")
msgnote "nightscout-tool version $SCRIPT_VERSION ($SCRIPT_BUILD_TIME)"
msgnote "build ${updateInstalled}"
msgnote "$uni_copyright 2023-2024 Dominik Dzienia"
msgnote "Licensed under CC BY-NC-ND 4.0"
}
@ -2865,7 +2873,7 @@ parse_commandline_args() {
load_update_channel
CMDARGS=$(getopt --quiet -o wvdpc: --long watchdog,version,develop,production,channel: -n 'nightscout-tool' -- "$@")
CMDARGS=$(getopt --quiet -o wvdpuc: --long watchdog,version,develop,production,update,channel: -n 'nightscout-tool' -- "$@")
# shellcheck disable=SC2181
if [ $? != 0 ]; then
@ -2890,18 +2898,26 @@ parse_commandline_args() {
-d | --develop)
warn "Switching to DEVELOP update channel"
UPDATE_CHANNEL=develop
forceUpdateCheck=1
echo "$UPDATE_CHANNEL" >"$UPDATE_CHANNEL_FILE"
shift
;;
-p | --production)
warn "Switching to PRODUCTION update channel"
UPDATE_CHANNEL=master
forceUpdateCheck=1
echo "$UPDATE_CHANNEL" >"$UPDATE_CHANNEL_FILE"
shift
;;
-u | --update)
warn "Forcing update check"
forceUpdateCheck=1
shift
;;
-c | --channel)
shift # The arg is next in position args
UPDATE_CHANNEL_CANDIDATE=$1
forceUpdateCheck=1
[[ ! "$UPDATE_CHANNEL_CANDIDATE" =~ ^[a-z]{3,}$ ]] && {
echo "Incorrect channel name provided: $UPDATE_CHANNEL_CANDIDATE"

@ -1 +1 @@
2024-10-25T10:04:13.801Z
2024-10-25T12:32:17.951Z
Loading…
Cancel
Save