[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#373976: apache2-common: modified a2dissite usage for consistency with man page



Package: apache2-common
Version: 2.0.54-5
Followup-For: Bug #373976

modified a2dissite usage for consistency with man page

-- System Information:
Debian Release: 3.1
Architecture: i386 (i686)
Kernel: Linux 2.6.8-2-386
Locale: LANG=en_US, LC_CTYPE=en_US (charmap=ISO-8859-1)

Versions of packages apache2-common depends on:
ii  apache2-utils         2.0.54-5           utility programs for webservers
ii  debconf               1.4.30.13          Debian configuration management sy
ii  debianutils           2.8.4              Miscellaneous utilities specific t
ii  libc6                 2.3.2.ds1-22sarge3 GNU C Library: Shared libraries an
ii  libdb4.2              4.2.52-18          Berkeley v4.2 Database Libraries [
ii  libexpat1             1.95.8-3           XML parsing C library - runtime li
ii  libgcc1               1:3.4.3-13         GCC support library
ii  libmagic1             4.12-1             File type determination library us
ii  mime-support          3.28-1             MIME files 'mime.types' & 'mailcap
ii  net-tools             1.60-10            The NET-3 networking toolkit
ii  openssl               0.9.7e-3sarge1     Secure Socket Layer (SSL) binary a
ii  ssl-cert              1.0-11             Simple debconf wrapper for openssl

-- no debconf information
--- ../orig/a2dissite.orig	2006-06-10 21:06:02.000000000 -0500
+++ a2dissite	2006-06-21 13:53:20.000000000 -0500
@@ -1,29 +1,106 @@
 #!/bin/sh -e
 
+# Initialize variables
 SYSCONFDIR='/etc/apache2'
+prompt=1
+disabledsites=
+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 a2dissite is called without an argument, then
+# print a list of sites to choose from.  Multiple sites
+# can be passed to the SITENAME variable.
 if [ -z $1 ]; then
 	echo "Which site would you like to disable?"
-	echo -n "Your choices are: "
-	ls /etc/apache2/sites-enabled/* | \
-	sed -e "s,$SYSCONFDIR/sites-enabled/,,g" | xargs echo
+	echo "Your choices are: "
+	ls $SYSCONFDIR/sites-enabled/
 	echo -n "Site name? "
-	read SITENAME
+	read  SITENAME
 else
-	SITENAME=$1
+	SITENAME="$@"
 fi
 
-if [ $SITENAME = "default" ]; then
-        PRIORITY="000"
-fi
+delsite="n"
+# Loop through the site files in SITENAME
+for siteentry in $SITENAME
+do
+    # Set default site with top priority
+    ## 
+    if [ $siteentry = "default" ]; then
+	siteentry="000-default"
+    fi
 
-if ! [ -e $SYSCONFDIR/sites-enabled/$SITENAME -o \
-       -e $SYSCONFDIR/sites-enabled/"$PRIORITY"-"$SITENAME" ]; then
-	echo "This site is already disabled, or does not exist!"
-	exit 1
-fi
+    # Allow for file globbing
+    for site in $(ls $SYSCONFDIR/sites-enabled/$siteentry | xargs -n1 -r basename)
+    do
+
+        # Check to see if the site has already been disabled
+	if ! [ -e $SYSCONFDIR/sites-enabled/$site ]; then
+	    echo "$site is already disabled, or does not exist!"
+	    disabled=1
+	fi
 
-if ! rm $SYSCONFDIR/sites-enabled/$SITENAME 2>/dev/null; then
-	rm -f $SYSCONFDIR/sites-enabled/"$PRIORITY"-"$SITENAME"
+        # If -f flag is not passed to the script, prompt user for confirmation on each site.
+	if [ ${disabled:-0} -eq 0 ]; then
+	    if [ $prompt -eq 1 ]; then
+		delsitelast=$delsite
+		echo -n "a2dissite: disable $site? [${delsitelast}] "
+		read delsite
+
+		if [ "$delsite" = "" ]; then
+		    delsite=$delsitelast
+		fi
+
+		if [ ${delsite:-n} = "y" ]; then
+		    rm $SYSCONFDIR/sites-enabled/$site 2>/dev/null
+		    disabledsites="$disabledsites $site "
+		fi
+	    else
+		rm $SYSCONFDIR/sites-enabled/$site 2>/dev/null
+		disabledsites="$disabledsites $site "
+	    fi
+	fi
+	unset disabled
+    done
+done
+
+
+# Print list of disabled sites, if any
+# Test to see if any sites were disabled
+if [ ${#disabledsites} -gt 0 ]; then
+    echo "Following site(s) disabled: "
+    echo
+    for vhost in $disabledsites
+    do
+	echo "$vhost"
+    done
+    echo
+    echo "Run /etc/init.d/apache2 reload to fully disable."
+else
+    echo
+    echo "No sites were disabled."
 fi
-echo "Site $SITENAME disabled; run /etc/init.d/apache2 reload to fully disable."
+unset disabledsites
\ No newline at end of file

Reply to: