#!/bin/sh

# @(#) $Id: register_host.sh,v 1.4 2009/01/29 16:05:43 dcid Exp $
# Agentless monitoring
#
# Copyright (C) 2009 Third Brigade, Inc.
# All rights reserved.
# 
# This program is a free software; you can redistribute it
# and/or modify it under the terms of the GNU General Public
# License (version 3) as published by the FSF - Free Software
# Foundation.


MYNAME="register_host.sh"
MYPASS=".passlist"


# Checking the location.
ls -la $MYNAME > /dev/null 2>&1
if [ ! $? = 0 ]; then
    LOCALDIR=`dirname $0`;
    cd ${LOCALDIR}

    ls -la $MYNAME > /dev/null 2>&1
    if [ ! $? = 0 ]; then
        echo "ERROR: You must run this script from the same directory."
        exit 1;
    fi    
fi    



# Arguments
if [ "x$1" = "x" -o "x$1" = "xhelp" -o "x$1" = "x-h" ]; then
    echo "$0 options:"
    echo "        add <user@host> [<passwd>] (<additional_pass>)"
    echo "        list (passwords)"
    exit 0;
fi


if [ "x$1" = "xlist" ]; then
    echo "*Available hosts: "
    if [ "x$2" = "xpasswords" ]; then
        cat $MYPASS | sort | uniq;
    else    
        cat $MYPASS | cut -d "|" -f 1 | sort | uniq;
    fi    
    exit 0;



elif [ "x$1" = "xadd" ]; then
    if [ "x$2" = "x" ]; then
        echo "ERROR: Missing hostname name.";
        echo "ex: $0 add <user@host> [<passwd>] (<additional_pass>)";
        exit 1;
    fi
    
    grep "$2|" $MYPASS > /dev/null 2>&1
    if [ $? = 0 ]; then
        echo "ERROR: Host '$2' already added.";
        exit 1;
    fi
    
    
    # Checking if the password was supplied.
    if [ "x$3" = "x" ]; then
        echo "Please provide password for host $2."
        echo -n "Password: ";
        stty -echo
        read INPASS
        stty echo
        
        echo "Please provide additional password for host $2 (<enter> for empty)."
        echo -n "Password: ";
        stty -echo
        read ADDPASS
        stty echo
    else
        INPASS=$3    
        ADDPASS=$4
    fi
    
    echo "$2|$INPASS|$ADDPASS" >> $MYPASS;
    if [ ! $? = 0 ]; then
        echo "ERROR: Unable to creating entry (echo failed)."
        exit 1;
    fi    
    echo "*Host $2 added."

else
    
    echo "ERROR: Invalid argument.";
    exit 1;
    
fi        


# EOF

