Added support for using the ports collection, and a jaildk fetch function to easily fetch ports

This commit is contained in:
Charlie Root
2020-11-26 22:08:19 +01:00
parent 49da499468
commit c0e1c2e289

36
jaildk
View File

@@ -15,6 +15,7 @@ base - build a new base
build - install a build chroot of a jail
create - create a new jail from a template
clone - clone an existing jail or jail version
fetch - fetch current port collection
${beg}Installing Jails:${end}
install - install a jail (prepare mounts, devfs etc)
@@ -105,6 +106,10 @@ jaildk_build() {
fi
jaildk_install $jail all $mode rw $base $version
if [ $2 = "start" ]; then
ex mount -t nullfs -o rw $j/ports/$version $run/$jail/usr/ports
fi
}
jaildk_rc_mount() {
@@ -382,6 +387,8 @@ boot"
ex rm -rf $basedir/$file
done
ex mkdir -p $basedir/usr/ports
ex rm -rf $basedir/var/db
ex ln -s /usr/local/db $basedir/var/db
fi
@@ -799,7 +806,7 @@ jaildk_setup() {
bold "preparing directories"
ex mkdir -p $j
for subdir in etc bin appl base data home log run; do
for subdir in etc bin appl base data home log run ports; do
ex mkdir -p $j/$subdir
done
@@ -890,6 +897,31 @@ endif
esac
}
jaildk_fetch() {
version=`date +%Y%m%d`
if [ -d "$j/ports/$version" ]; then
echo "Ports dir $version already exist. Do you want to recreate it? [y/N]"
read yesno
case $yesno in
y|Y|yes|YES)
rm -rf $j/ports/$version
jaildk_fetch_exec
;;
esac
else
jaildk_fetch_exec
fi
}
jaildk_fetch_exec() {
fetch -o $j/ports/$version.tar.gz http://ftp.freebsd.org/pub/FreeBSD/ports/ports/ports.tar.gz
mkdir -p $j/ports/$version
tar xzfC $j/ports/$version.tar.gz $j/ports/$version
cd $j/ports/$version/
mv ports/* .
cd -
rm -rf $j/ports/$version.tar.gz $j/ports/$version/ports
}
##########################
#
@@ -909,7 +941,7 @@ case $runner in
start|stop|status|restart)
jaildk_jail $runner $*
;;
setup|reinstall|install|uninstall|build|blogin|login|clone|create|remove|rc|base)
setup|reinstall|install|uninstall|build|blogin|login|clone|create|remove|rc|base|fetch)
jaildk_$runner $*
;;
*)