#!/bin/bash

# Home-Folders creator
# Avinoam Levkovich. March 2004

HOME_FOLDERS_PATH="/Home-Folders/" # Configure the path to your Home-Folders directory.
        # It is essential to put the character "/" at the end of the path (e.g. /home/).

SEPERATOR='+' # This is the Winbind separator from the smb.conf file.

#
TEMP_USER="koko14" # The template user (the quota template user),if you want to assign quota
        # you should uncomment this line and the line which starts with: edquota -p

TEMP_FILE="./TEMP.txt" # We need 2 temporary files, they will be deleted at the end of the script
TEMP_FILE2="./TEMP2.txt"

getent passwd > $TEMP_FILE2
grep -n -e "$SEPERATOR" $TEMP_FILE2 > $TEMP_FILE
sed -e 's/:/ /g' $TEMP_FILE > $TEMP_FILE2
sed -e 's/+/ + /g' $TEMP_FILE2 > $TEMP_FILE
cp -f $TEMP_FILE $TEMP_FILE2
Count=$(grep --count "$SEPERATOR" $TEMP_FILE )
echo "----------------------------------------"
echo " Please Wait, Processing $Count Records "
echo "----------------------------------------"
NEW_FOLDERS=0
while [ $Count != 0 ]; do
        C_Line=$(grep -m 1 "$SEPERATOR" $TEMP_FILE )
        sed '1d' $TEMP_FILE > $TEMP_FILE2
        cp -f $TEMP_FILE2 $TEMP_FILE
        N=1
        for X in $C_Line ; do
                case $N in
                        2) DOMAIN=$X
                        ;;
                        4) Folder_Name=$(echo $X |tr "[A-Z]" "[a-z]" )
                        if [ -d "$HOME_FOLDERS_PATH$Folder_Name" ]; then
                                echo -n "."
                        else
                                mkdir "$HOME_FOLDERS_PATH$Folder_Name"
                                chmod 770 -R "$HOME_FOLDERS_PATH$Folder_Name"
                                chown "$DOMAIN$SEPERATOR$Folder_Name:root" -R "$HOME_FOLDERS_PATH$Folder_Name"
                                # edquota -p $TEMP_USER $DOMAIN$SEPERATOR$Folder_Name # if you want to assign quota you should uncomment this line
                                let "NEW_FOLDERS +=1"
                                echo
                                echo " New Folder : $HOME_FOLDERS_PATH$Folder_Name "
                                echo
                        fi
                        ;;
                esac
                let "N+=1"
        done
        let "Count-=1"
done

if [ $NEW_FOLDERS -gt 0 ]; then
        echo "============================================="
>> /var/log/messages
        echo " $(date '+%B.%d %T') Finish Analyzing the home folder list, $NEW_FOLDERS Folders were Added " >> /var/log/messages
fi

# Change the folder name Upercase Letters to Lower case.

find $HOME_FOLDERS_PATH -maxdepth 1 -type d -print | perl -ne 'chomp; ($l=$_) =~ s:[^/]+$:lc($&):e; if ($l ne $_ && ! -e $l) { rename($_,$l); }'
rm -f $TEMP_FILE
rm -f $TEMP_FILE2
echo
echo "-----------------------------"
echo " $NEW_FOLDERS New Folders"
echo "-----------------------------"
