diff options
Diffstat (limited to 'share/hydractl/aperiodic-upgrade')
-rwxr-xr-x | share/hydractl/aperiodic-upgrade | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/share/hydractl/aperiodic-upgrade b/share/hydractl/aperiodic-upgrade new file mode 100755 index 0000000..1b0f649 --- /dev/null +++ b/share/hydractl/aperiodic-upgrade @@ -0,0 +1,49 @@ +#!/bin/bash +# +# Run a system upgrade. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public +# License along with this program. If not, see +# <http://www.gnu.org/licenses/>. + +# Basic parameters +TIMEFRAME="${1:-86400}" +DATE="`date +%s`" +LOG="/var/lib/hydractl/aperidic-upgrade" + +# Set sudo config +if [ "`whoami`" != 'root' ]; then + sudo="sudo" +fi + +# Ensure log folder +$sudo mkdir -p "`dirname $LOG`" + +if [ ! -e "$LOG" ]; then + # Upgrade anyway + hydractl upgrade +else + LAST="`cat $LOG`" + INTERVAL="$(($DATE - $LAST))" + + # More than $TIMEFRAME? + if (( $INTERVAL > $TIMEFRAME )); then + echo hydractl upgrade + else + echo "Please enjoy life for an additional $(($TIMEFRAME - $INTERVAL)) seconds before running this command again." + exit + fi +fi + +# Save timestamp +$DATE | $sudo tee $LOG > /dev/null |