#!/bin/sh

set -e

SYS_DIR=/sys/kerrighed/hotplug
KRGBOOT=/usr/sbin/krgboot

error() {
    echo "E: $@"
    exit 1
}

if [ ! -x "$KRGBOOT" ]; then
    error "Can not find krgboot: $KRGBOOT"
fi

ISOLATE_UTS=`cat $SYS_DIR/isolate_uts`
ISOLATE_IPC=`cat $SYS_DIR/isolate_ipc`
ISOLATE_MNT=`cat $SYS_DIR/isolate_mnt`
ISOLATE_PID=`cat $SYS_DIR/isolate_pid`
ISOLATE_NET=`cat $SYS_DIR/isolate_net`
ISOLATE_USER=`cat $SYS_DIR/isolate_user`
CLUSTER_INIT_HELPER=`cat $SYS_DIR/cluster_init_helper`

if [ -z "$CLUSTER_INIT_HELPER" ]; then
    error "$SYS_DIR/cluster_init_helper not set"
fi

if [ ! -x "$CLUSTER_INIT_HELPER" ]; then
    error "Can not find cluster init helper: $CLUSTER_INIT_HELPER"
fi

NS_ARGS=
if [ "$ISOLATE_UTS" -ne 0 ]; then
	NS_ARGS="$NS_ARGS -u"
fi
if [ "$ISOLATE_IPC" -ne 0 ]; then
	NS_ARGS="$NS_ARGS -i"
fi
if [ "$ISOLATE_MNT" -ne 0 ]; then
	NS_ARGS="$NS_ARGS -m"
fi
if [ "$ISOLATE_PID" -ne 0 ]; then
	NS_ARGS="$NS_ARGS -p"
fi
if [ "$ISOLATE_NET" -ne 0 ]; then
	NS_ARGS="$NS_ARGS -n"
fi
if [ "$ISOLATE_USER" -ne 0 ]; then
	NS_ARGS="$NS_ARGS -U"
fi

exec $KRGBOOT $NS_ARGS -- $CLUSTER_INIT_HELPER
