#!/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 # . # Basic parameters TIMEFRAME="${1:-86400}" DATE="`date +%s`" LOG="/var/lib/hydractl/aperidic-upgrade" # Upgrade and save timestamp function hydractl_aperiodic_upgrade { hydractl upgrade date +%s | $sudo tee $LOG > /dev/null exit } # Set sudo config if [ "`whoami`" != 'root' ]; then sudo="sudo" fi # Ensure log folder $sudo mkdir -p "`dirname $LOG`" # Run if [ ! -e "$LOG" ]; then hydractl_aperiodic_upgrade else LAST="`cat $LOG`" if [ ! -z "$LAST" ]; then INTERVAL="$(($DATE - $LAST))" # More than $TIMEFRAME? if [ "$INTERVAL" -gt "$TIMEFRAME" ]; then hydractl_aperiodic_upgrade else NEXT="$(($TIMEFRAME - $INTERVAL))" echo "Please enjoy life for an additional $NEXT seconds before running this command again." fi else hydractl_aperiodic_upgrade fi fi