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: