mirror of
https://codeberg.org/scip/jaildk.git
synced 2025-12-16 20:21:05 +01:00
added uninstall -a option to remove everything and fixed -w again
This commit is contained in:
41
jaildk
41
jaildk
@@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
version=1.16
|
||||
version=1.17
|
||||
|
||||
usage_jaildk() {
|
||||
beg=`tput -T ${TERM:-cons25} md`
|
||||
@@ -560,12 +560,17 @@ jaildk_install() {
|
||||
fi
|
||||
fi
|
||||
|
||||
type="jail"
|
||||
if test -n "$rw"; then
|
||||
type="build chroot"
|
||||
fi
|
||||
|
||||
case $mode in
|
||||
start)
|
||||
bold "Installing jail $jail"
|
||||
bold "Installing $type $jail"
|
||||
;;
|
||||
stop)
|
||||
bold "Unstalling jail $jail"
|
||||
bold "Unstalling $type $jail"
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -577,7 +582,8 @@ jaildk_install() {
|
||||
usage_uninstall() {
|
||||
fin "Usage: $0 uninstall <jail> [-w]
|
||||
Uninstall <jail>. Options:
|
||||
-w Uninstall writable build chroot."
|
||||
-w Uninstall writable build chroot.
|
||||
-a Uninstall jail and build chroot."
|
||||
}
|
||||
|
||||
jaildk_uninstall() {
|
||||
@@ -585,10 +591,14 @@ jaildk_uninstall() {
|
||||
jail=$1
|
||||
shift
|
||||
rw=''
|
||||
all=''
|
||||
base=''
|
||||
version=''
|
||||
|
||||
while getopts "w" arg; do
|
||||
while getopts "wa" arg; do
|
||||
case $arg in
|
||||
w) rw="-w";;
|
||||
a) all=1; rw="-w";;
|
||||
*) usage_uninstall;;
|
||||
esac
|
||||
done
|
||||
@@ -603,7 +613,26 @@ jaildk_uninstall() {
|
||||
die "Jail $jail($version) is still running, stop it before removing!"
|
||||
fi
|
||||
|
||||
jaildk_install $jail stop -r all $rw
|
||||
if test -n "$rw"; then
|
||||
# we need to find out base and version of actually
|
||||
# mounted jail, but cannot just use the jail config
|
||||
# since the user might have mounted another version
|
||||
base=$(mount | egrep "/base/.*/$jail " | cut -d' ' -f1 | sed 's|.*/||')
|
||||
version=$(mount | egrep "/appl/.*/$jail/" | cut -d' ' -f1 | sed 's/.*\-//')
|
||||
fi
|
||||
|
||||
if test -z "$base"; then
|
||||
# no base no umount!
|
||||
rw=''
|
||||
all=''
|
||||
fi
|
||||
|
||||
if test -n "$all"; then
|
||||
jaildk_install $jail stop -r all
|
||||
jaildk_install $jail stop -r all -b $base -v $version -w
|
||||
else
|
||||
jaildk_install $jail stop -r all -b $base -v $version $rw
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user