#!/bin/sh

# Copyright (c) 2008-2014 Aleksey Cheusov <vle@gmx.net>
# All rights reserved.
#
# See LICENSE file

######################################################################

usage (){
    cat <<'EOF'
distbb_chroot is a ssh/rsh-like transport programs used by distbb(1)
Usage: distbb_chroot <chroot_rootdir> <chroot_id> <cmd> <args>
Example:
     mkdir /var/chroot/box1
     mkdir /var/chroot/box2
     cp -Rp /bin /sbin ... /var/chroot/box1
     cp -Rp /bin /sbin ... /var/chroot/box2
     distbb_chroot /var/chroot/ box1 ls -la /
     distbb_chroot /var/chroot/ box2 ls -la /
Example:
     distbb_chroot -p 'ssh root@remotehost' /var/chroot/ box2 ls -la /
EOF
}

while getopts hp: f; do
    case "$f" in
        h)  usage; exit 0;;
        p)  prefixcmd="$OPTARG";;
        \?) usage; exit 1;;
    esac
done
shift `expr $OPTIND - 1`

if test $# -lt 3; then
    usage
    exit 1
fi

root="$1"
shift

id="$1"
shift

if test -z "$DISTBB_CONF"; then
    echo 'distbb_chroot: DISTBB_CONF cannot be empty' 1>&2
    exit 1
fi

. "$DISTBB_CONF"
BUILD_ID=fake
. /usr/pkg/libexec/distbb/common

cmd=`shquote_all "$@"`

# and DISTBB_CONF for "slave" script
env="$env DISTBB_CONF='$DISTBB_CONF'"

full_cmd="$DISTBB_SUDO chroot $root$id sh -c \"eval env $env $cmd\""
if test -n "$prefixcmd"; then
    $prefixcmd "$full_cmd"
else
    $full_cmd
fi
