From 71784150d00655e8ebfb65026ea97e2d9dd6fb68 Mon Sep 17 00:00:00 2001 From: Silvio Rhatto Date: Sun, 17 Dec 2017 10:23:52 -0200 Subject: Adds aperiodic-upgrade --- TODO.md | 1 - share/hydractl/aperiodic-upgrade | 49 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) create mode 100755 share/hydractl/aperiodic-upgrade diff --git a/TODO.md b/TODO.md index 607fbad..3bf56f8 100644 --- a/TODO.md +++ b/TODO.md @@ -2,6 +2,5 @@ TODO ==== * hydractl - * aperiodic-upgrade: run hydractl upgrade if it doesn't ran for a day or more. * sync-tpc: way to ignore /var/cache/qemu and other files from syncing, perhaps a .sync-tpc-ignore. 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 +# . + +# 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 -- cgit v1.2.3