tools/install_prereqs.sh
48352ee7
 #!/usr/bin/env bash
 
 # **install_prereqs.sh**
 
 # Install system package prerequisites
 #
 # install_prereqs.sh [-f]
 #
 # -f        Force an install run now
 
53753293
 FORCE_PREREQ=0
 
 while getopts ":f" opt; do
     case $opt in
         f)
             FORCE_PREREQ=1
             ;;
     esac
 done
48352ee7
 
dc97cb71
 # If ``TOP_DIR`` is set we're being sourced rather than running stand-alone
48352ee7
 # or in a sub-shell
 if [[ -z "$TOP_DIR" ]]; then
dc97cb71
     # Keep track of the DevStack directory
48352ee7
     TOP_DIR=$(cd $(dirname "$0")/.. && pwd)
 
     # Import common functions
     source $TOP_DIR/functions
 
     # Determine what system we are running on.  This provides ``os_VENDOR``,
7710e7fc
     # ``os_RELEASE``, ``os_PACKAGE``, ``os_CODENAME``
48352ee7
     # and ``DISTRO``
     GetDistro
 
     # Needed to get ``ENABLED_SERVICES``
     source $TOP_DIR/stackrc
 
     # Prereq dirs are here
     FILES=$TOP_DIR/files
 fi
 
 # Minimum wait time
 PREREQ_RERUN_MARKER=${PREREQ_RERUN_MARKER:-$TOP_DIR/.prereqs}
 PREREQ_RERUN_HOURS=${PREREQ_RERUN_HOURS:-2}
 PREREQ_RERUN_SECONDS=$((60*60*$PREREQ_RERUN_HOURS))
 
 NOW=$(date "+%s")
 LAST_RUN=$(head -1 $PREREQ_RERUN_MARKER 2>/dev/null || echo "0")
 DELTA=$(($NOW - $LAST_RUN))
 if [[ $DELTA -lt $PREREQ_RERUN_SECONDS && -z "$FORCE_PREREQ" ]]; then
7919d851
     echo "Re-run time has not expired ($(($PREREQ_RERUN_SECONDS - $DELTA)) seconds remaining) "
     echo "and FORCE_PREREQ not set; exiting..."
48352ee7
     return 0
 fi
 
 # Make sure the proxy config is visible to sub-processes
 export_proxy_variables
 
 
 # Install Packages
 # ================
 
 # Install package requirements
b8509f09
 PACKAGES=$(get_packages general,$ENABLED_SERVICES)
7ca90cde
 PACKAGES="$PACKAGES $(get_plugin_packages)"
 
06fb29c6
 if is_ubuntu && echo $PACKAGES | grep -q dkms ; then
dc97cb71
     # Ensure headers for the running kernel are installed for any DKMS builds
06fb29c6
     PACKAGES="$PACKAGES linux-headers-$(uname -r)"
 fi
 
 install_package $PACKAGES
48352ee7
 
 if [[ -n "$SYSLOG" && "$SYSLOG" != "False" ]]; then
     if is_ubuntu || is_fedora; then
         install_package rsyslog-relp
     elif is_suse; then
         install_package rsyslog-module-relp
     else
         exit_distro_not_supported "rsyslog-relp installation"
     fi
 fi
 
 
 # Mark end of run
 # ---------------
 
 date "+%s" >$PREREQ_RERUN_MARKER
 date >>$PREREQ_RERUN_MARKER