Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:42.2
nagvis
nagvis-update-script.sh
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File nagvis-update-script.sh of Package nagvis
#!/bin/bash # # Do some update tasks (Changing options, notify about deprecated options) # # Default installation path (by RPM) NAGVIS_PATH='/etc/nagvis' # Path to the NagVis configuration file NAGVIS_CONF="$NAGVIS_PATH/nagvis.ini.php" # Log what is going on LOGFILE="$NAGVIS_PATH/nagvis-update.log" # Loglevel: log everything LOGLEVEL=7 # debug messages DEBUG="no" # Saving current timestamp for backup when updating DATE=$(date +%Y-%m-%d_%H:%M:%S) # Main installation path NAGVIS_INSTALL_PATH='/usr/share/nagvis' # get the verison information from RPM INSTALLER_VERSION=$(rpm -q --qf "%{VERSION}-%{RELEASE}" nagvis | head -n1) USER='wwwrun' GROUP='www' # Print usage usage() { cat <<EOD NagVis Updater $INSTALLER_VERSION Updates NagVis on your system. Usage: $0 [OPTIONS] General Parameters: -f <PATH> Path to the NagVis configuration file Default value: $NAGVIS_CONF -p <PATH> Path to NagVis base directory Default value: $NAGVIS_PATH -l <PATH> Path to logfile Default value: $LOGFILE -u <user> User name for the ownership of the files Default value: $USER -g <group> Group name for the ownership of the files Default value: $GROUP -v Version information -h This message EOD } # Print version information version() { cat <<EOD NagVis updater, version $INSTALLER_VERSION based on the NagVis installer - see information below: Copyright (C) 2004-2011 NagVis Project (Contact: info@nagvis.org) License: GNU General Public License version 2 Based on the work of: - Wolfgang Nieder - Lars Michelsen <lars@vertical-visions.de> EOD } remove_option_from_main_config(){ local REMOVE_OPT="$1" LOG "Removing $REMOVE_OPT from $NAGVIS_CONF" 3 sed -i '/^${REMOVE_OPT}=/d' "$NAGVIS_CONF" } remove_option_from_maps(){ local REMOVE_OPT="$1" FILES=$(grep -lr '^${REMOVE_OPT}=' "${NAGVIS_PATH}/maps/"*.cfg) for FILE in $FILES; do backup_file=$(basename $FILE) LOG "Removing $REMOVE_OPT from $FILE" 3 test -f "${NAGVIS_PATH}/auth-backup/$backup_file" || cp $FILE "${NAGVIS_PATH}/auth-backup/" sed -i '/^${REMOVE_OPT}=/d' "$FILE" || echo "Error in $FILE" >&2 done } LOG() { local MESSAGE="$1" local LEVEL=1 local FILE="$LOGFILE" if [ -n "$2" ]; then LEVEL="$2" fi if [ -n "$3" ]; then FILE="$3" fi local LOGDIR="$(dirname "$FILE")" local LOG_DATE="$(date "+%b %d %H:%M:%S")" local HOST="$(hostname -s)" if [ -z "$FILE" ]; then echo "ERROR: function LOG needs a defined LOGFILE variable" >&2 exit 1 fi if [ -z "$LOGNAME" ]; then LOGNAME="$(basename "$0")" fi if [ ! -d "$LOGDIR" ]; then mkdir -p "$LOGDIR" || exit 1 echo ""$LOG_DATE" "$HOST" "$LOGNAME": function LOG created "$LOGDIR"." > "$FILE" fi if [ $LEVEL -le $LOGLEVEL ]; then echo "$LOG_DATE $HOST $LOGNAME: $MESSAGE" >> "$FILE" fi if [ "$DEBUG" = "yes" ]; then echo "DEBUG: "$MESSAGE"" fi } # Process command line options if [ $# -gt 0 ]; then while getopts 'f:p:l:vu:g:h' OPTION ; do case $OPTION in f) NAGVIS_CONF="$OPTARG" ;; g) GROUP="$OPTARG" ;; p) NAGVIS_PATH="${OPTARG%/}" ;; l) LOGFILE="$OPTARG" ;; u) USER="$OPTARG" ;; v) version exit 0 ;; h) usage exit 0 ;; *) echo "Error: Unknown option in $@." >&2 usage exit 1 ;; esac done fi shift $(( OPTIND - 1 )) # create backup test -d "$NAGVIS_PATH/auth-backup" || mkdir -p "$NAGVIS_PATH/auth-backup" LOG "Creating backup of $NAGVIS_CONF in $NAGVIS_PATH/auth-backup/$BACKUP_NAGVIS_CONF" 4 BACKUP_NAGVIS_CONF=$(basename "$NAGVIS_CONF")-$DATE cp -f "$NAGVIS_CONF" "$NAGVIS_PATH/auth-backup/$BACKUP_NAGVIS_CONF" # no automaps any more with NagVis >= 1.7 # move the directory and the default map if [ -d "$NAGVIS_PATH"/automaps ]; then LOG "Adapting automap configuration - backup is in $NAGVIS_PATH/auth-backup/automaps" 4 cp -r "$NAGVIS_PATH"/automaps "$NAGVIS_PATH/auth-backup/" || { echo "Could not copy automaps to backup directory" >&2; exit 1; } if [ -f "$NAGVIS_PATH"/automaps/__automap.cfg ]; then sed -e "s|^alias=Default.*Automap.*|alias=Default Automap\nsources=automap|g" "$NAGVIS_PATH"/automaps/__automap.cfg > "$NAGVIS_PATH"/maps/__automap.cfg fi LOG "Removing outdated $NAGVIS_PATH/automaps directory" 3 rm -rf "$NAGVIS_PATH"/automaps fi # update main config for option in \ allowedforconfig \ allowed_for_config \ allowed_user \ autoupdatefreq \ displayheader \ hovertimeout \ hover_timeout \ htmlwuijs \ showautomaps \ showinlists \ wuijs \ usegdlibs do remove_option_from_main_config "$option" done # update map configs for option in \ allowed_for_config \ allowed_user \ hover_timeout \ usegdlibs do remove_option_from_maps "$option" done if [ ! -L "$NAGVIS_INSTALL_PATH/share/userfiles" ]; then if [ ! -d "$NAGVIS_PATH/userfiles" ]; then LOG "Moving userfiles below $NAGVIS_PATH" 3 mv "$NAGVIS_INSTALL_PATH/share/userfiles" "$NAGVIS_PATH/" else LOG "directory $NAGVIS_PATH/userfiles exists. Not trying to move files from $NAGVIS_INSTALL_PATH/share/userfiles here" 4 fi pushd "$NAGVIS_INSTALL_PATH/share/" >/dev/null ln -s "$NAGVIS_PATH/userfiles" . popd >/dev/null fi chown $USER:$GROUP "$NAGVIS_PATH"/maps/*.cfg 2>/dev/null chown $USER:$GROUP "$NAGVIS_PATH"/nagvis.ini.php 2>/dev/null chown $USER:$GROUP "$NAGVIS_PATH"/geomap/*.xml 2>/dev/null chown $USER:$GROUP "$NAGVIS_PATH"/conf.d/*.php 2>/dev/null chown -R root:root "$NAGVIS_PATH/userfiles" 2>/dev/null
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor