apache site adder fixes
authorChris Koeritz <fred@gruntose.com>
Fri, 27 Oct 2017 01:15:24 +0000 (21:15 -0400)
committerChris Koeritz <fred@gruntose.com>
Fri, 27 Oct 2017 01:15:24 +0000 (21:15 -0400)
got the thing writing the config file and doing the proper magic to configure it.  now also hides output from a2ensite unless error occurs.  also fixed bug in log files in site config.

scripts/system/add_apache_site.sh

index 558b418df8457f1a270b56d0b42c674e3d5919da..897664e41a9b395f5f193efb1846ac36da48a7d4 100644 (file)
@@ -44,31 +44,35 @@ echo "
     ServerName ${sitename}
 #    ServerAlias ${sitename} *.${sitename}
     DocumentRoot ${fullpath}
-    ErrorLog ${APACHE_LOG_DIR}/${sitename}-error.log
-    CustomLog ${APACHE_LOG_DIR}/${sitename}-access.log combined
+    ErrorLog \${APACHE_LOG_DIR}/${sitename}-error.log
+    CustomLog \${APACHE_LOG_DIR}/${sitename}-access.log combined
     Include /etc/apache2/conf-library/basic-options.conf
     Include /etc/apache2/conf-library/rewrite-enabling.conf
 </VirtualHost>
-"
-#fix
-# >"$site_config"
-
+" >"$site_config" 
 }
 
+# turns on the config file we create above for apache.
 function enable_site()
 {
   local sitename="$1"; shift
   local site_config="/etc/apache2/sites-available/${sitename}.conf"
 
-  a2ensite "$(basename $site_config)"
+  outfile="$TMP/apacheout.$RANDOM"
+  a2ensite "$(basename $site_config)" &>$outfile
   if [ $? -ne 0 ]; then
+    # an error happened, so we show the command's output at least.
+    cat $outfile
+    echo
     echo "There was a problem enabling the apache config file in:"
     echo "  $site_config"
     echo "Please consult the apache error logs for more details."
     exit 1
   fi
+  rm "$outfile"
 }
 
+# restarts the apache2 service.
 function restart_apache()
 {
   service apache2 restart
@@ -79,6 +83,36 @@ function restart_apache()
   fi
 }
 
+# sets up a link to represent the serverpilot storage location, while
+# still storing the files under /var/www.
+function create_shadow_path()
+{
+  # make sure there is a symbolic link from the shadow path (that mimics the serverpilot
+  # storage set up) to the real storage directory.
+  if [ ! -L "$SHADOWPATH" ]; then
+    # create the path up to but not including the last component.
+    if [ ! -d $(dirname $SHADOWPATH) ]; then
+      mkdir -p $(dirname $SHADOWPATH)
+      if [ $? -ne 0 ]; then
+        echo "The parent of the shadow path could not be created."
+        echo "Path in question is: $(dirname $SHADOWPATH)"
+        exit 1
+      fi
+    fi
+
+    ln -s "$BASEPATH" "$SHADOWPATH"
+#hmmm: should we be okay with it if it's a real dir, and assume people are happy?
+#      this wouldn't work too well if we go plunk down the new thing in /var/www,
+#      if they are expecting this tool to totally meld with serverpilot.
+    if [ $? -ne 0 ]; then
+      echo "The shadow path for mimicking serverpilot could not be created."
+      echo "Is there a real directory present for this already?"
+      echo "Path in question is: $SHADOWPATH"
+      exit 1
+    fi
+  fi
+}
+
 # main body of script.
 
 if (( $EUID != 0 )); then
@@ -96,21 +130,7 @@ if [ -z "$appname" -o -z "$site" ]; then
   exit 1
 fi
 
-# make sure there is a symbolic link from the shadow path (that mimics the serverpilot
-# storage set up) to the real storage directory.
-if [ ! -l "$SHADOWPATH" ]; then
-  ln -s "$BASEPATH" "$SHADOWPATH"
-#hmmm: should we be okay with it if it's a real dir, and assume people are happy?
-#      this wouldn't work too well if we go plunk down the new thing in /var/www,
-#      if they are expecting this tool to totally meld with serverpilot.
-  if [ $? -ne 0 ]; then
-    echo "The shadow path for mimicking serverpilot could not be created."
-    echo "Is there a real directory present for this already?"
-    echo "Path in question is: $SHADOWPATH"
-    exit 1
-  fi
-fi
-
+create_shadow_path
 write_apache_config "$appname" "$site"
 enable_site "$site"
 restart_apache