#!/bin/sh
# $Id: root.sh,v 1.5 2015/02/27 19:26:09 asau Stab $
set -e
_progname="${0##*/}"
usage="usage: ${0##*/} {create|delete|start|stop} path"
while getopts "" opt; do
case $opt in
\?) echo "$usage" 1>&2; exit 1;;
esac
done
shift $(expr $OPTIND - 1)
if [ $# -lt 2 ]; then echo "$usage" 1>&2; exit 1; fi
create_root () {
: ${1:?usage: "$0" path}
path="$1"
: ${OBJDIR:=/usr/obj}
: ${RELEASEDIR:="${OBJDIR}"/releasedir}
: ${SETSDIR:="${RELEASEDIR}"/"$(uname -m)"/binary/sets}
: ${SETS:="base comp etc text"}
: ${SETS:="base comp etc games man misc text"}
set -e
mkdir -p "$path"
cd "$path"
for s in ${SETS}; do pax -zrpe -f "${SETSDIR}/$s.tgz"; done
(cd dev && sh MAKEDEV std fd ptm random)
}
delete_root () {
: ${1:?usage: "$0" path}
path="$1"
rm -rf "$path"
}
start_root () {
: ${1:?usage: "$0" path}
path="$1"
mount_ptyfs ptyfs "${path}"/dev/pts
}
stop_root () {
: ${1:?usage: "$0" path}
path="$1"
umount "$path"/dev/pts
}
root () {
local cmd path
cmd="$1"
path="$2"
case "$1" in
create) create_root "$2";;
delete) delete_root "$2";;
start) start_root "$2";;
stop) stop_root "$2";;
esac
}
root ${1:+"$@"}