#! /bin/sh
#
# Configure script for Avahi
# Author: Walter Guerra

AVAHI_SERVICE_DIR="/etc/avahi/services"

SAMBA_SERVICE_FILE="${AVAHI_SERVICE_DIR}/smb.service"
NFS_SERVICE_FILE="${AVAHI_SERVICE_DIR}/nfs.service"
VNC_SERVICE_FILE="${AVAHI_SERVICE_DIR}/vnc.service"
SSH_SERVICE_FILE="${AVAHI_SERVICE_DIR}/ssh.service"
SBRSH_SERVICE_FILE="${AVAHI_SERVICE_DIR}/sbrsh.service"

start_avahi() {
    /etc/init.d/avahi-daemon start
}

stop_avahi() {
    /etc/init.d/avahi-daemon stop
}

stop_samba() {
    if [ -e $SAMBA_SERVICE_FILE ]
    then
        rm $SAMBA_SERVICE_FILE
    fi
}

start_samba() {
    # Usage: samba port (default: 139)
    cat <<EOF > $SAMBA_SERVICE_FILE
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">Maemo Device</name> ## Name
    <service>
        <type>_smb._tcp</type>
        <port>$1</port>
    </service>
</service-group>
EOF
}

stop_nfs() {
    if [ -e $NFS_SERVICE_FILE ]
    then
        rm $NFS_SERVICE_FILE
    fi
}

start_nfs() {
    # Usage: nfs port
    cat <<EOF > $NFS_SERVICE_FILE
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">Maemo Device</name> ## Name
    <service>
        <type>_nfs._tcp</type>
        <port>$1</port>
    </service>
</service-group>
EOF
}

stop_vnc() {
    if [ -e $VNC_SERVICE_FILE ]
    then
        rm $VNC_SERVICE_FILE
    fi    
}

start_vnc() {
    # Usage: nfs port
    cat <<EOF > $VNC_SERVICE_FILE
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">Maemo Device</name> ## Name
    <service>
        <type>_rfb._tcp</type>
        <port>$1</port>
    </service>
</service-group>
EOF
}

stop_sbrsh() {
    if [ -e $SBRSH_SERVICE_FILE ]
    then
        rm $SBRSH_SERVICE_FILE
    fi    
}

start_sbrsh() {
    # Usage: sbrsh port
    cat <<EOF > $SBRSH_SERVICE_FILE
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">Maemo Device</name> ## Name
    <service>
        <type>_sbrsh._tcp</type>
        <port>$1</port>
    </service>
</service-group>
EOF
}

start_ssh() {
    # Usage: nfs port
    cat <<EOF > $SSH_SERVICE_FILE
<?xml version="1.0" standalone='no'?>
<!DOCTYPE service-group SYSTEM "avahi-service.dtd">
<service-group>
    <name replace-wildcards="yes">Maemo Device</name> ## Name
    <service>
        <type>_ssh._tcp</type>
        <port>$1</port>
    </service>
</service-group>
EOF
}

case $1 in
start_samba)
    shift
    start_samba $@
    ;;
stop_samba)
    stop_samba
    ;;
start_nfs)
    shift
    start_nfs $@
    ;;
stop_nfs)
    stop_nfs
    ;;
start_sbrsh)
    shift
    start_sbrsh $@
    ;;
stop_sbrsh)
    stop_sbrsh
    ;;
esac

if [ ! -e $SSH_SERVICE_FILE ]
then
    start_ssh
fi

# After the files are created, start the avahi deamon
start_avahi

