41 lines
912 B
Plaintext
41 lines
912 B
Plaintext
|
#!/usr/bin/env bash
|
||
|
#
|
||
|
# Create a new jail
|
||
|
set -euo pipefail
|
||
|
IFS=$'\n\t'
|
||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||
|
|
||
|
: ${JAIL_MOUNTPOINT:="{{ jail_zfs_dataset_mountpoint }}/jails"}
|
||
|
|
||
|
function die {
|
||
|
echo >&2 "$@"
|
||
|
exit 1
|
||
|
}
|
||
|
|
||
|
[ "$#" -eq 2 ] || die "1 argument required, $# provided"
|
||
|
|
||
|
JAIL_NAME="$2"
|
||
|
export DESTDIR="${JAIL_MOUNTPOINT}/$JAIL_NAME"
|
||
|
|
||
|
function by_src {
|
||
|
cd /usr/src
|
||
|
make -j 16 buildworld
|
||
|
make installworld DESTDIR=$DESTDIR
|
||
|
make distribution DESTDIR=$DESTDIR
|
||
|
}
|
||
|
|
||
|
function by_bin {
|
||
|
DESTRELEASE=13.1-RELEASE
|
||
|
DESTARCH=`uname -m`
|
||
|
SOURCEURL=http://ftp.freebsd.org/pub/FreeBSD/releases/$DESTARCH/$DESTRELEASE/
|
||
|
for component in base ports; do fetch $SOURCEURL/$component.txz -o - | tar -xf - -C "$DESTDIR" ; done
|
||
|
}
|
||
|
|
||
|
if [ "$1" = "src" ]; then
|
||
|
by_src
|
||
|
elif [ "$1" = "bin" ]; then
|
||
|
by_bin
|
||
|
else
|
||
|
die "First argument must be either 'src' or 'bin', got $1"
|
||
|
fi
|