#!/bin/sh -e

# Initialize variables
SYSCONFDIR='/etc/apache2'
prompt=1
enabledsites=
usage="
Usage: ${0} [OPTION] [FILE] [FILE]...

Options:
 -f		Never prompt
 -h		This message
"

while getopts ":ft" OPT
do
    case $OPT in
	f )
	    prompt=0
	    ;;
	h )
	    echo "$usage"
	    exit 1
	    ;;
	\?) 
	    echo "$usage"
            exit 1;;
	esac
done
# remove the flags from $@
shift $((${OPTIND} - 1))


# If a2ensite is called without an argument, then
# print a list of sites to choose from.  Multiple sites
# can be passed to the SITENAME variable, (including globbing).
if [ -z $1 ]; then
	echo "Which site would you like to enable?"
	echo "Your choices are: "
	ls $SYSCONFDIR/sites-available/
	echo -n "Site name? "
	read  SITENAME
else
	SITENAME="$@"
fi


ensite="y"
# Loop through the site files in SITENAME
for siteentry in $SITENAME
do
    # Allow for file globbing
    for site in $(ls $SYSCONFDIR/sites-available/$siteentry | xargs -n1 -r basename)
    do
        # Set default site with top priority
	if [ $site = "default" ]; then
            PRIORITY="000"
	fi

        # Check to see if the site has already been enabled
	if [ -e $SYSCONFDIR/sites-enabled/$site -o \
	     -e $SYSCONFDIR/sites-enabled/"$PRIORITY"-"$site" ]; then
	    echo "$site is already enabled!"
	    enabled=1
	fi

	if ! [ -e $SYSCONFDIR/sites-available/$site ]; then
	    echo "$site does not exist!"
	    enabled=1
	fi

        # If -f flag is not passed to the script, prompt user for confirmation on each site.
	if [ ${enabled:-0} -eq 0 ]; then
	    if [ $prompt -eq 1 ]; then
		ensitelast=$ensite
		echo -n "a2ensite: enable $site? [${ensitelast}] "
		read ensite

		if [ "$ensite" = "" ]; then
		    ensite=$ensitelast
		fi

		if [ ${ensite:-n} = "y" ]; then
		    if [ $site = "default" ]; then
			ln -sf $SYSCONFDIR/sites-available/$site \
			    $SYSCONFDIR/sites-enabled/"$PRIORITY"-"$site"
		    else
			ln -sf $SYSCONFDIR/sites-available/$site \
			    $SYSCONFDIR/sites-enabled/$site
		    fi
		    enabledsites="$enabledsites $site "
		fi
	    else
		if [ $site = "default" ]; then
		    ln -sf $SYSCONFDIR/sites-available/$site \
			$SYSCONFDIR/sites-enabled/"$PRIORITY"-"$site"
		else
		    ln -sf $SYSCONFDIR/sites-available/$site \
			$SYSCONFDIR/sites-enabled/$site	
		fi
		enabledsites="$enabledsites $site "
	    fi
	fi
	unset enabled
    done
done



# Print list of enabled sites, if any.
# Test to see if any sites were enabled
if [ ${#enabledsites} -gt 0 ]; then
    echo "Following site(s) enabled: "
    echo
    for vhost in $enabledsites
    do
	echo "$vhost"
    done
    echo
    echo "Run /etc/init.d/apache2 reload to fully enable."
else
    echo
    echo "No sites were enabled."
fi
unset enabledsites



