summaryrefslogtreecommitdiff
path: root/src/pmdas/logger/Install
diff options
context:
space:
mode:
Diffstat (limited to 'src/pmdas/logger/Install')
-rw-r--r--src/pmdas/logger/Install164
1 files changed, 164 insertions, 0 deletions
diff --git a/src/pmdas/logger/Install b/src/pmdas/logger/Install
new file mode 100644
index 0000000..10deb91
--- /dev/null
+++ b/src/pmdas/logger/Install
@@ -0,0 +1,164 @@
+#! /bin/sh
+#
+# Copyright (c) 2011-2012 Red Hat.
+# Copyright (c) 1997 Silicon Graphics, Inc. All Rights Reserved.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by the
+# Free Software Foundation; either version 2 of the License, or (at your
+# option) any later version.
+#
+# This program is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+# for more details.
+#
+# Install the logger PMDA and/or PMNS
+#
+
+. $PCP_DIR/etc/pcp.env
+. $PCP_SHARE_DIR/lib/pmdaproc.sh
+
+iam=logger
+pmda_interface=5
+forced_restart=false
+
+pmdaSetup
+
+# be careful that mortals cannot write any configuration files, as
+# these would present a security problem
+#
+umask 022
+
+# PMDA variables
+#
+configfile=""
+
+_parsedefaults()
+{
+ echo "Extracting options from current installation ..."
+ while getopts D:d:l c
+ do
+ case $c in
+ \?) echo "Warning: Unrecognized option in $PCP_PMCDCONF_PATH"
+ echo " Remove line for the $iam PMDA in $PCP_PMCDCONF_PATH and re-run ./Install"
+ exit 2;;
+ * ) ;;
+ esac
+ done
+ eval configfile='$'$OPTIND
+}
+
+# Get logfile(s) to monitor
+if $do_pmda
+then
+ # set options from $PCP_PMCDCONF_PATH, if possible
+ #
+ ans=`$PCP_AWK_PROG <$PCP_PMCDCONF_PATH '
+$1 == "'$iam'" { printf "%s",$6
+ for (i=7;i<=NF;i++) printf " %s",$i
+ print ""
+ }'`
+ if [ ! -z "$ans" ]
+ then
+ _parsedefaults $ans
+ fi
+
+ # go figure out which configuration file to use ...
+ #
+ #default_configfile=./sample.conf
+ default_configfile=''
+ pmdaChooseConfigFile
+ if [ ! -f "$configfile" ]
+ then
+ $PCP_ECHO_PROG $PCP_ECHO_N "Do you wish to enter logfile names and paths manually? [y] ""$PCP_ECHO_C"
+ read ans
+ if [ "X$ans" = "Xy" -o "X$ans" = "XY" -o -z "$ans" ]
+ then
+ configfile="$configdir/$iam.conf"
+ if [ -f "$configfile" ]
+ then
+ echo "Removing old configuration file \"$configfile\""
+ rm -f "$configfile"
+ if [ -f "$configfile" ]
+ then
+ echo "Cannot remove \"$configfile\""
+ exit 1
+ fi
+ fi
+
+ echo
+ echo \
+'Enter the PMNS name and logfile path. If the path ends in "|", the
+filename is interpreted as a command which will output data.
+
+An empty line terminates the logfile selection process and there must
+be at least one logfile specified. '
+
+ args=""
+ touch "$configfile"
+ if [ ! -f "$configfile" ]
+ then
+ echo "Installation aborted."
+ exit 1
+ fi
+
+ while [ ! -s "$configfile" ]
+ do
+ while true
+ do
+ $PCP_ECHO_PROG $PCP_ECHO_N "Logfile PMNS name: ""$PCP_ECHO_C"
+ read name
+ [ -z "$name" ] && break
+
+ # Check name for invalid chars.
+ if ! echo $name | grep "^[A-Za-z][_A-Za-z0-9]*$" > /dev/null
+ then
+ echo \
+"Invalid characters in PMNS name: \"$name\".
+Names must start with an alphabetic character ([a-zA-Z]). The rest of
+the characters in the name must be alphanumeric ([a-zA-Z0-9]) or an
+underscore ('_')."
+ continue
+ fi
+
+ # Make sure name isn't already in the logfile.
+ if grep "^${name}[ \t]" "$configfile" >/dev/null
+ then
+ echo "Sorry, logfile PMNS name \"$name\" already specified. Please try again."
+ continue
+ fi
+
+ $PCP_ECHO_PROG $PCP_ECHO_N "Logfile pathname: ""$PCP_ECHO_C"
+ read pathname
+ [ -z "$pathname" ] && break
+ if grep "[ \t]${pathname}$" "$configfile" >/dev/null
+ then
+ echo "Sorry, pathname \"$pathname\" already specified. Please try again."
+ continue
+ fi
+
+ $PCP_ECHO_PROG $PCP_ECHO_N "Restricted access [n]: ""$PCP_ECHO_C"
+ read restrict
+ if [ "$restrict" = "y" -o "$restrict" = "yes" ]; then
+ restrict="y"
+ else
+ restrict="n"
+ fi
+
+ echo "$name $restrict $pathname" >>"$configfile"
+ done
+ done
+ else
+ echo ""
+ echo "Error: Abandoning installation as no configuration file was specified."
+ exit 1
+ fi
+ fi
+
+ args="$configfile"
+fi
+
+pmdaInstall
+
+exit 0