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

Bug#373969: apache2-common: wrong patch submitted initially



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


I submitted the a2dissite patch on accident.  Here is the right a2ensite.patch.

-- 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
--- /home/speeves/a2ensite.orig	2006-06-16 09:56:06.778188968 -0500
+++ a2ensite	2006-06-16 06:39:43.000000000 -0500
@@ -1,38 +1,128 @@
 #!/bin/sh -e
 
+# Initialize variables
 SYSCONFDIR='/etc/apache2'
-
+prompt=1
+disabledsites=
+usage="
+Usage: ${0} [OPTION]...
+
+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 -n "Your choices are: "
-	ls $SYSCONFDIR/sites-available/* | \
-	sed -e "s,$SYSCONFDIR/sites-available/,,g" | xargs echo
+	echo "Your choices are: "
+	ls $SYSCONFDIR/sites-available/
 	echo -n "Site name? "
-	read SITENAME
+	read  SITENAME
 else
-	SITENAME=$1
+	SITENAME="$@"
 fi
 
-if [ $SITENAME = "default" ]; then
-	PRIORITY="000"
-fi
 
-if [ -e $SYSCONFDIR/sites-enabled/$SITENAME -o \
-     -e $SYSCONFDIR/sites-enabled/"$PRIORITY"-"$SITENAME" ]; then
-	echo "This site is already enabled!"
-	exit 0
+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
 
-if ! [ -e $SYSCONFDIR/sites-available/$SITENAME ]; then
-	echo "This site does not exist!"
-	exit 1
-fi
 
-if [ $SITENAME = "default" ]; then
-	ln -sf $SYSCONFDIR/sites-available/$SITENAME \
-	       $SYSCONFDIR/sites-enabled/"$PRIORITY"-"$SITENAME"
-else
-	ln -sf $SYSCONFDIR/sites-available/$SITENAME $SYSCONFDIR/sites-enabled/$SITENAME
-fi
 
-echo "Site $SITENAME installed; run /etc/init.d/apache2 reload to enable."

Reply to: