#!/bin/sh
#
# Copyright (c) 2019,2024 Red Hat.
#
# 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.
#
# Upgrade an old PMDA install with missing 'notready' keyword, and also
# convert an installation with original Prometheus PMDA to OpenMetrics.
#

. $PCP_DIR/etc/pcp.env

if grep -q ^prometheus "$PCP_PMCDCONF_PATH" 2>/dev/null
then
    if grep ^prometheus "$PCP_PMCDCONF_PATH" | grep -q notready 2>/dev/null
    then
	:	# already has the keyword, so nothing to update in that regard
    else
	sed -i -e 's,^\(prometheus.*binary\),\1 notready,g' $PCP_PMCDCONF_PATH
    fi
    if grep -q ^openmetrics "$PCP_PMCDCONF_PATH" 2>/dev/null
    then
	:	# already have an openmetrics PMDA install, leave it untouched
    else
	sed -i -e "s,prometheus,openmetrics,g" $PCP_PMCDCONF_PATH 2>/dev/null
	cp -a "$PCP_PMDAS_DIR/prometheus/config.d" "$PCP_PMDAS_DIR/openmetrics/"
    fi
    rm -f "$PCP_VAR_DIR/pmns/prometheus" 2>/dev/null
fi

if grep -q ^openmetrics "$PCP_PMCDCONF_PATH" 2>/dev/null
then
    if grep ^openmetrics "$PCP_PMCDCONF_PATH" | grep -q "$PCP_PYTHON_PROG" 2>/dev/null
    then
	:	# already using $PCP_PYTHON_PROG, leave this line untouched
    else
	# convert hard-coded python or python3 binary to PCP_PYTHON_PROG
	sed -i $PCP_PMCDCONF_PATH 2>/dev/null \
	    -e "s,python3 $PCP_PMDAS_DIR/openmetrics/,$PCP_PYTHON_PROG $PCP_PMDAS_DIR/openmetrics/,g" \
	    -e "s,python $PCP_PMDAS_DIR/openmetrics/,$PCP_PYTHON_PROG $PCP_PMDAS_DIR/openmetrics/,g" \
	# end
    fi
fi

exit 0
