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 via email to