#! /bin/sh
#
# Copyright (c) 2011-2013 Red Hat Inc.
# 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 systemd PMDA and/or PMNS
#

. $PCP_DIR/etc/pcp.env
. $PCP_SHARE_DIR/lib/pmdaproc.sh

iam=systemd
pmda_interface=6
pipe_opt=true
daemon_opt=true

# On some platforms, the 'adm' user does not exist, so the pmda needs
# to run as root, to get full access to the systemd journal
# On other systems, a process needs to belong to group 'systemd-journal' 
# to access the systemd journal.

args=''
whoami=`which whoami 2>/dev/null`
haveadm="`su adm -s $whoami 2>/dev/null`"
if [ "x$haveadm" != "xadm" ]; then
    args="-Uroot"
    echo "Warning: user adm not found, running PMDA as root"
    echo
else
    journalctl=`which journalctl 2>/dev/null`
    if [ -n "$journalctl" ]
    then
	if su adm -s /bin/sh -c "$journalctl --this-boot --lines=1 --no-pager >/dev/null 2>$__tmp.err"
	then
	    # all good ... PMDA default is to run as the user adm
	    :
	else
	    #debug# cat $__tmp.err
	    echo "Warning: user adm cannot run journalctl, running PMDA as root"
	    echo
	    args=-Uroot
	fi
    else
	# not sure what sort of system this might be that has user adm and
	# systemd installed, but no journalctl ...
	# but run PMDA as root as the fall back option
	echo "Warning: journalctl(1) not found, running PMDA as root"
	echo
	args=-Uroot
    fi
fi

pmdaSetup
pmdaInstall

exit
