| # lib/apache | 
 | # Functions to control configuration and operation of apache web server | 
 |  | 
 | # Dependencies: | 
 | # ``functions`` file | 
 | # is_apache_enabled_service | 
 | # change_apache_user_group | 
 | # install_apache_wsgi | 
 | # config_apache_wsgi | 
 | # 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:-$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 | 
 | } | 
 |  | 
 | # change_apache_user_group() - Change the User/Group to run Apache server | 
 | function change_apache_user_group(){ | 
 |     local stack_user=$@ | 
 |     if is_ubuntu; then | 
 |         sudo sed -e " | 
 |             s/^export APACHE_RUN_USER=.*/export APACHE_RUN_USER=${stack_user}/g; | 
 |             s/^export APACHE_RUN_GROUP=.*/export APACHE_RUN_GROUP=${stack_user}/g | 
 |         " -i /etc/${APACHE_NAME}/envvars | 
 |     elif is_fedora; then | 
 |         sudo sed -e " | 
 |             s/^User .*/User ${stack_user}/g; | 
 |             s/^Group .*/Group ${stack_user}/g | 
 |         " -i /etc/${APACHE_NAME}/httpd.conf | 
 |     elif is_suse; then | 
 |         sudo sed -e " | 
 |             s/^User .*/User ${stack_user}/g; | 
 |             s/^Group .*/Group ${stack_user}/g | 
 |         " -i /etc/${APACHE_NAME}/uid.conf | 
 |     else | 
 |         exit_distro_not_supported "apache user and group" | 
 |     fi | 
 | } | 
 |  | 
 | # 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 | 
 |     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 | 
 |     else | 
 |         exit_distro_not_supported "apache installation" | 
 |     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 | 
 |  | 
 | # Local variables: | 
 | # mode: shell-script | 
 | # End: |