 aee18c749b
			
		
	
	aee18c749b
	
	
	
		
			
			Check that function calls look like ^function foo {$ in bash8, and fix
all existing failures of that check.  Add a note to HACKING.rst
Change-Id: Ic19eecb39e0b20273d1bcd551a42fe400d54e938
		
	
		
			
				
	
	
		
			128 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| # lib/apache
 | |
| # Functions to control configuration and operation of apache web server
 | |
| 
 | |
| # Dependencies:
 | |
| #
 | |
| # - ``functions`` file
 | |
| # - ``STACK_USER`` must be defined
 | |
| #
 | |
| # lib/apache exports the following functions:
 | |
| #
 | |
| # - is_apache_enabled_service
 | |
| # - install_apache_wsgi
 | |
| # - config_apache_wsgi
 | |
| # - enable_apache_site
 | |
| # - disable_apache_site
 | |
| # - start_apache_server
 | |
| # - stop_apache_server
 | |
| # - restart_apache_server
 | |
| 
 | |
| # Save trace setting
 | |
| XTRACE=$(set +o | grep xtrace)
 | |
| set +o xtrace
 | |
| 
 | |
| # Allow overriding the default Apache user and group, default to
 | |
| # current user and his default group.
 | |
| APACHE_USER=${APACHE_USER:-$STACK_USER}
 | |
| APACHE_GROUP=${APACHE_GROUP:-$(id -gn $APACHE_USER)}
 | |
| 
 | |
| 
 | |
| # Set up apache name and configuration directory
 | |
| if is_ubuntu; then
 | |
|     APACHE_NAME=apache2
 | |
|     APACHE_CONF_DIR=sites-available
 | |
| elif is_fedora; then
 | |
|     APACHE_NAME=httpd
 | |
|     APACHE_CONF_DIR=conf.d
 | |
| elif is_suse; then
 | |
|     APACHE_NAME=apache2
 | |
|     APACHE_CONF_DIR=vhosts.d
 | |
| fi
 | |
| 
 | |
| # Functions
 | |
| # ---------
 | |
| 
 | |
| # is_apache_enabled_service() checks if the service(s) specified as arguments are
 | |
| # apache enabled by the user in ``APACHE_ENABLED_SERVICES`` as web front end.
 | |
| #
 | |
| # Multiple services specified as arguments are ``OR``'ed together; the test
 | |
| # is a short-circuit boolean, i.e it returns on the first match.
 | |
| #
 | |
| # Uses global ``APACHE_ENABLED_SERVICES``
 | |
| # APACHE_ENABLED_SERVICES service [service ...]
 | |
| function is_apache_enabled_service {
 | |
|     services=$@
 | |
|     for service in ${services}; do
 | |
|         [[ ,${APACHE_ENABLED_SERVICES}, =~ ,${service}, ]] && return 0
 | |
|     done
 | |
|     return 1
 | |
| }
 | |
| 
 | |
| # install_apache_wsgi() - Install Apache server and wsgi module
 | |
| function install_apache_wsgi {
 | |
|     # Apache installation, because we mark it NOPRIME
 | |
|     if is_ubuntu; then
 | |
|         # Install apache2, which is NOPRIME'd
 | |
|         install_package apache2 libapache2-mod-wsgi
 | |
|         # WSGI isn't enabled by default, enable it
 | |
|         sudo a2enmod wsgi
 | |
|     elif is_fedora; then
 | |
|         sudo rm -f /etc/httpd/conf.d/000-*
 | |
|         install_package httpd mod_wsgi
 | |
|     elif is_suse; then
 | |
|         install_package apache2 apache2-mod_wsgi
 | |
|         # WSGI isn't enabled by default, enable it
 | |
|         sudo a2enmod wsgi
 | |
|     else
 | |
|         exit_distro_not_supported "apache installation"
 | |
|     fi
 | |
| }
 | |
| 
 | |
| # enable_apache_site() - Enable a particular apache site
 | |
| function enable_apache_site {
 | |
|     local site=$@
 | |
|     if is_ubuntu; then
 | |
|         sudo a2ensite ${site}
 | |
|     elif is_fedora; then
 | |
|         # fedora conf.d is only imported if it ends with .conf so this is approx the same
 | |
|         sudo mv /etc/$APACHE_NAME/$APACHE_CONF_DIR/${site} /etc/$APACHE_NAME/$APACHE_CONF_DIR/${site}.conf
 | |
|     fi
 | |
| }
 | |
| 
 | |
| # disable_apache_site() - Disable a particular apache site
 | |
| function disable_apache_site {
 | |
|     local site=$@
 | |
|     if is_ubuntu; then
 | |
|         sudo a2dissite ${site}
 | |
|     elif is_fedora; then
 | |
|         sudo mv /etc/$APACHE_NAME/$APACHE_CONF_DIR/${site}.conf /etc/$APACHE_NAME/$APACHE_CONF_DIR/${site}
 | |
|     fi
 | |
| }
 | |
| 
 | |
| # start_apache_server() - Start running apache server
 | |
| function start_apache_server {
 | |
|     start_service $APACHE_NAME
 | |
| }
 | |
| 
 | |
| # stop_apache_server() - Stop running apache server
 | |
| function stop_apache_server {
 | |
|     if [ -n "$APACHE_NAME" ]; then
 | |
|         stop_service $APACHE_NAME
 | |
|     else
 | |
|         exit_distro_not_supported "apache configuration"
 | |
|     fi
 | |
| }
 | |
| 
 | |
| # restart_apache_server
 | |
| function restart_apache_server {
 | |
|     restart_service $APACHE_NAME
 | |
| }
 | |
| 
 | |
| # Restore xtrace
 | |
| $XTRACE
 | |
| 
 | |
| # Tell emacs to use shell-script-mode
 | |
| ## Local variables:
 | |
| ## mode: shell-script
 | |
| ## End:
 |