#! /bin/sh
#
# Startup script for UNFS
# Author: Walter Guerra

CONFIG_FILE="/etc/default/unfs3"
EXPORT_FILE="/etc/exports"
EXEC_SCRIPT="/etc/init.d/unfs3"
DAEMON="/usr/sbin/unfsd"

is_unfs_running() {
    ret=`pidof unfsd`
    if [ $ret ]
    then
        return 1
    else
        return 0
    fi
}

is_unfs_installed() {
    if [ -e "$EXEC_SCRIPT" ]
    then
        if [ -e "$DAEMON" ]
        then
            return 1
        else
            return 0
        fi
    else
        return 0
    fi
}

start_unfs() {
    $EXEC_SCRIPT start
}

stop_unfs() {
    $EXEC_SCRIPT stop
}

configure_unfs() {
    echo "Changing the unfs3 config file"
    
    # save a backup copy
    BASE_NAME=`basename $CONFIG_FILE`
    if [ ! -f ~/.pc-connectivity/${BASE_NAME} ]
    then
        cp $CONFIG_FILE ~/.pc-connectivity/${BASE_NAME}.orig
    fi
    
    # Fist parameter
    if [ $1 -eq 1 ]
    then
        SINGLE_USER="SINGLE_USER=\"-s\""
    else
        SINGLE_USER="#SINGLE_USER=\"-s\""
    fi
    
    # Second parameter
#    if [ $2 -eq 1 ]
#    then
#        DEBUG="DEBUG=\"-d\""
#    else
#        DEBUG="#DEBUG=\"-d\""
#    fi
    
    # Third parameter
    PORT_NFS="PORT_NFS=\"$2\""
    PORT_MOUNT="PORT_MOUNT=\"$2\""
    
    cp ${CONFIG_FILE} ${CONFIG_FILE}.tmp
    
    sed -e "/SINGLE_USER=/c $SINGLE_USER " \
        -e "/PORT_NFS=/c $PORT_NFS" \
        -e "/PORT_MOUNT=/c $PORT_MOUNT" \
        ${CONFIG_FILE}.tmp > ${CONFIG_FILE}
    
    rm ${CONFIG_FILE}.tmp
}

generate_unfs_exports() {
    
    # save a backup copy
    BASE_NAME=`basename $EXPORT_FILE`
    if [ ! -f ~/.pc-connectivity/${BASE_NAME} ]
    then
        cp $EXPORT_FILE ~/.pc-connectivity/${BASE_NAME}.orig
    fi
    
    
    ALLOWED_IPS=$1
    TMP_FILE=`mktemp tmp.XXXXXX`
    shift
    
    echo "# Automatically generated by pc-connectivity manager" > $TMP_FILE

    while [ "$1" != "" ]; do
        echo "$1 $ALLOWED_IPS" >> $TMP_FILE #(rw,no_root_squash)
        
        shift
    done
    
    sed -e 's/,/(rw,no_root_squash) /g' $TMP_FILE > $EXPORT_FILE
    rm $TMP_FILE

}

case $1 in
isrunning)
    is_unfs_running
    exit $?
    ;;
isinstalled)
    is_unfs_installed
    exit $?
    ;;
start)
    start_unfs
    ;;
stop)
    stop_unfs
    ;;
config)
    configure_unfs $2 $3
    ;;
gen_exports)
    shift
    generate_unfs_exports $@
    ;;
esac



