diff --git a/CHANGELOG.md b/CHANGELOG.md index 9990d11..c8e0cd0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [1.8.1] - 2024-01-17 +### Added + +- Custom update channels support + ### Changed - Added more detailed logs in case of watchdog failure diff --git a/install.sh b/install.sh index 9797b1d..7dd29f0 100644 --- a/install.sh +++ b/install.sh @@ -1656,10 +1656,12 @@ watchdog_check() { fi # fi - FAILSIZE=$(wc -l <$WATCHDOG_FAILURES_FILE) - if [ "$FAILSIZE" -gt 10000 ]; then - tail -10000 $WATCHDOG_FAILURES_FILE >"$WATCHDOG_FAILURES_FILE.tmp" - mv -f "$WATCHDOG_FAILURES_FILE.tmp" "$WATCHDOG_FAILURES_FILE" + if [[ -f $WATCHDOG_FAILURES_FILE ]]; then + FAILSIZE=$(wc -l <$WATCHDOG_FAILURES_FILE) + if [ "$FAILSIZE" -gt 10000 ]; then + tail -10000 $WATCHDOG_FAILURES_FILE >"$WATCHDOG_FAILURES_FILE.tmp" + mv -f "$WATCHDOG_FAILURES_FILE.tmp" "$WATCHDOG_FAILURES_FILE" + fi fi echo "$WATCHDOG_TIME" >$WATCHDOG_TIME_FILE @@ -1685,7 +1687,7 @@ parse_commandline_args() { load_update_channel - CMDARGS=$(getopt --quiet -o wvdp --long watchdog,version,develop,production -n 'nightscout-tool' -- "$@") + CMDARGS=$(getopt --quiet -o wvdpc: --long watchdog,version,develop,production,channel: -n 'nightscout-tool' -- "$@") # shellcheck disable=SC2181 if [ $? != 0 ]; then @@ -1719,6 +1721,20 @@ parse_commandline_args() { echo "$UPDATE_CHANNEL" >$UPDATE_CHANNEL_FILE shift ;; + -c | --channel) + shift # The arg is next in position args + UPDATE_CHANNEL_CANDIDATE=$1 + + [[ ! "$UPDATE_CHANNEL_CANDIDATE" =~ ^[a-z]{3,}$ ]] && { + echo "Incorrect channel name provided: $UPDATE_CHANNEL_CANDIDATE" + exit 1 + } + + warn "Switching to $UPDATE_CHANNEL_CANDIDATE update channel" + UPDATE_CHANNEL="$UPDATE_CHANNEL_CANDIDATE" + echo "$UPDATE_CHANNEL" >$UPDATE_CHANNEL_FILE + shift + ;; --) shift break diff --git a/src/lib.sh b/src/lib.sh index 21c9e08..4cfb024 100644 --- a/src/lib.sh +++ b/src/lib.sh @@ -1640,10 +1640,12 @@ watchdog_check() { fi # fi - FAILSIZE=$(wc -l <$WATCHDOG_FAILURES_FILE) - if [ "$FAILSIZE" -gt 10000 ]; then - tail -10000 $WATCHDOG_FAILURES_FILE >"$WATCHDOG_FAILURES_FILE.tmp" - mv -f "$WATCHDOG_FAILURES_FILE.tmp" "$WATCHDOG_FAILURES_FILE" + if [[ -f $WATCHDOG_FAILURES_FILE ]]; then + FAILSIZE=$(wc -l <$WATCHDOG_FAILURES_FILE) + if [ "$FAILSIZE" -gt 10000 ]; then + tail -10000 $WATCHDOG_FAILURES_FILE >"$WATCHDOG_FAILURES_FILE.tmp" + mv -f "$WATCHDOG_FAILURES_FILE.tmp" "$WATCHDOG_FAILURES_FILE" + fi fi echo "$WATCHDOG_TIME" >$WATCHDOG_TIME_FILE @@ -1669,7 +1671,7 @@ parse_commandline_args() { load_update_channel - CMDARGS=$(getopt --quiet -o wvdp --long watchdog,version,develop,production -n 'nightscout-tool' -- "$@") + CMDARGS=$(getopt --quiet -o wvdpc: --long watchdog,version,develop,production,channel: -n 'nightscout-tool' -- "$@") # shellcheck disable=SC2181 if [ $? != 0 ]; then @@ -1703,6 +1705,20 @@ parse_commandline_args() { echo "$UPDATE_CHANNEL" >$UPDATE_CHANNEL_FILE shift ;; + -c | --channel) + shift # The arg is next in position args + UPDATE_CHANNEL_CANDIDATE=$1 + + [[ ! "$UPDATE_CHANNEL_CANDIDATE" =~ ^[a-z]{3,}$ ]] && { + echo "Incorrect channel name provided: $UPDATE_CHANNEL_CANDIDATE" + exit 1 + } + + warn "Switching to $UPDATE_CHANNEL_CANDIDATE update channel" + UPDATE_CHANNEL="$UPDATE_CHANNEL_CANDIDATE" + echo "$UPDATE_CHANNEL" >$UPDATE_CHANNEL_FILE + shift + ;; --) shift break diff --git a/updated b/updated index dafd8f1..e5a7bb5 100644 --- a/updated +++ b/updated @@ -1 +1 @@ -2024-01-17T08:47:45.288Z \ No newline at end of file +2024-01-17T09:24:04.563Z \ No newline at end of file