#! /bin/bash
#------------------------------------------------------------------------------
#
# delete_login_profiles
#
#------------------------------------------------------------------------------
# Comments to:
#   support@novell.com
#------------------------------------------------------------------------------
# Copyright 2006, Novell, Inc.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
# General Public License for more details.
#
# This script and its embedded programs are distributed with
# absolutely, positively NO WARRANTY WHATSOEVER, without even the
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
# PURPOSE.  The author and Novell, Inc. take no responsibility for
# the consequences of running this script.
#------------------------------------------------------------------------------

VERSION=1.0
SCRIPT_NAME='delete_login_profiles'
LOGIN_PROFILE_NAME="StartupLogin.conf"

if [ -z "$1" ]
then
    MODE="list"
else
    MODE=$1
fi

if [ $MODE != "yast" ]
then
    echo ""
    echo "[$SCRIPT_NAME] $SCRIPT_NAME v$VERSION started"
    echo "[$SCRIPT_NAME] mode = $MODE"
    echo ""
fi

# verify that a valid mode was entered
case "$MODE" in
    "delete" | "deleteall" | "list" | "yast" )
    #echo "[$SCRIPT_NAME] $MODE is valid"
    ;;

    * )
    echo "[$SCRIPT_NAME] invalid mode: <$MODE>"
    echo "[$SCRIPT_NAME] usage:  $SCRIPT_NAME  [ delete | deleteall | list  ]"
    echo ""
    exit 1
    ;;
esac
    
# validate that the user running the script is root
ROOT_UID=0
#echo "[$SCRIPT_NAME] User id = <$UID>"
#echo "[$SCRIPT_NAME] Root user id = <$ROOT_UID>"
if [ "$UID" -ne "$ROOT_UID" ]
then
    echo "[$SCRIPT_NAME] ERROR: You are not the root user."
    echo "[$SCRIPT_NAME] To delete the login profiles,"
    echo "[$SCRIPT_NAME] you must login as the root user."
    echo ""
    exit 2
fi

# set the variable based on the mode
case "$MODE" in
    "delete" )
    ACTION="Deleting"
    ;;

    "deleteall" )
    ACTION="Deleting all"
    ;;

    "list" )
    ACTION="Listing"
    ;;

    "yast")
    ACTION=""
    ;;
    
    * )
    echo "[$SCRIPT_NAME] ERROR: invalid mode: <$MODE>"
    echo ""
    exit 3
    ;;
esac

if [ $MODE = "deleteall" ]
then
    DELETEALL_CONTINUE="y"
    echo "[$SCRIPT_NAME] Are you sure you want to delete all the login profiles?"
    echo -n "[$SCRIPT_NAME] (y/n) "
    read DELETEALL_CONTINUE
    
    echo ""
    if [ $DELETEALL_CONTINUE != "y" ]
    then
        exit 4
    fi
fi

if [ $MODE != "yast" ]
then
    echo "[$SCRIPT_NAME] $ACTION the login profiles."
    echo "[$SCRIPT_NAME] Please wait..."
    echo ""
fi

# create the list of users directories
USER_DIRECTORIES_LIST=`ls /home`

LOGIN_PROFILE_FOUND="n"

# list or delete the login profiles
for USER_DIRECTORY in $USER_DIRECTORIES_LIST
do
    #echo "$USER_DIRECTORY"
    #echo "/home/$USER_DIRECTORY/.novell/ncl/$LOGIN_PROFILE_NAME"
    if [ -e /home/$USER_DIRECTORY/.novell/ncl/$LOGIN_PROFILE_NAME ]
    then
        LOGIN_PROFILE_FOUND="y"
        case "$MODE" in
            "delete" )
                CONTINUE="y"
                echo "[$SCRIPT_NAME] Are you sure you want to delete the login profile:"
                echo "[$SCRIPT_NAME] /home/$USER_DIRECTORY/.novell/ncl/$LOGIN_PROFILE_NAME"
                echo -n "[$SCRIPT_NAME] (y/n) "
                read CONTINUE
            
                if [ $CONTINUE = "y" ]
                then
                    echo "[$SCRIPT_NAME] deleting: /home/$USER_DIRECTORY/.novell/ncl/$LOGIN_PROFILE_NAME"
                    rm /home/$USER_DIRECTORY/.novell/ncl/$LOGIN_PROFILE_NAME
                fi
            ;;

            "deleteall" )
                echo "[$SCRIPT_NAME] deleting: /home/$USER_DIRECTORY/.novell/ncl/$LOGIN_PROFILE_NAME"
                rm /home/$USER_DIRECTORY/.novell/ncl/$LOGIN_PROFILE_NAME
            ;;
            
            "list" )
                echo "[$SCRIPT_NAME] /home/$USER_DIRECTORY/.novell/ncl/$LOGIN_PROFILE_NAME"
            ;;

            "yast" )
                rm /home/$USER_DIRECTORY/.novell/ncl/$LOGIN_PROFILE_NAME
            ;;

            * )
            echo "[$SCRIPT_NAME] ERROR: invalid mode: <$MODE>"
            echo ""
            exit 5
            ;;
        esac
    fi
done

if [ $MODE != "yast" ]
then
    if [ $LOGIN_PROFILE_FOUND = "n" ]
    then
        echo "[$SCRIPT_NAME] No login profiles ($LOGIN_PROFILE_NAME) were found."
    fi        
    echo ""
fi

exit 0
