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