From e3502c12580950df615f2e3f2355335f3873e6c9 Mon Sep 17 00:00:00 2001 From: Thomas von Dein Date: Tue, 6 Jul 2021 12:11:23 +0200 Subject: [PATCH] added update command --- jaildk | 58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 57 insertions(+), 1 deletion(-) diff --git a/jaildk b/jaildk index f66dcd7..944d748 100755 --- a/jaildk +++ b/jaildk @@ -40,8 +40,10 @@ ${beg}Transferring Jails:${end} freeze [-a -b -v ] - freeze (build an image of) a jail thaw - thaw (install) an image of a jail -${beg}Getting help:${end} +${beg}Getting help and internals:${end} help - request help on +version - print program version +update [-f] - update jaildk from git repository EOF ) @@ -1711,6 +1713,60 @@ endif esac } +jaildk_version() { + # parser friendly output + echo "This is jaildk. +version=$version +jailbase=$j +" +} + +usage_update() { + die "Usage $0 update [f] +Update jaildk via git, needs internet access and git. +Use -f to force the update ignoring the version check. +" +} + +jaildk_update() { + local repo gitversion force + rcscript=update + force='' + + repo="https://github.com/TLINDEN/jaildk.git" + mustberoot + + while getopts "f" arg; do + case $arg in + f) force=1;; + *) usage_update;; + esac + done + + if test -w $j; then + if ! test -d $j/git/jaildk; then + ex mkdir -p $j/git || die "Could not mkdir $j/git" + cd $j/git && ex git clone $repo || die "Could not clone $repo!" + else + cd $j/git/jaildk && ex git pull || die "Could not pull from $repo!" + fi + + gitversion=$(egrep "^version=" $j/git/jaildk/jaildk | head -1 | cut -d= -f2) + if test -n "$gitversion"; then + if test 1 -eq $(echo "$gitversion > $version" | bc); then + echo "Updating jaildk from $version to version $gitversion..." + ex install -o root -g wheel $j/git/jaildk/jaildk $j/bin/jaildk || die "Failed to update self!" + else + die "jaildk git version unchanged, aborting" + fi + else + die "git version of jaildk in $j/git/jaildk/jaildk has no version!" + fi + else + die "directory $j must be writable!" + fi +} + usage_fetchports() { die "Usage $0 fetchports [-v ] Fetch current portscollection, use or todays timestamp as new version"