#!/bin/bash
#
# Copyright 2019 The Cobalt Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the 'License');
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an 'AS IS' BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

if [[ ${EUID} -ne 0 ]]; then
   echo "This script must be run as root"
   exit 1
fi

function print_msg() {
    echo  '============= ' ${@} ' ============='
}

WEBROOT=/var/www/html
CGP_ROOT=${WEBROOT}/CGP

COLLECTD_CONF_DIR=/etc/collectd/collectd.conf.d
RRD_ENABLED=1
if [[ -d "/etc/collectd/google.conf.d" ]]; then
    COLLECTD_CONF_DIR=/etc/collectd/google.conf.d
    RRD_ENABLED=0
fi


print_msg "Installing apt deps"
PKGS="collectd-core lighttpd libphp-jpgraph python-websocket"
[[ ! -f /etc/collectd/collectd.conf ]] && PKGS="${PKGS} collectd"
apt install ${PKGS}
# grab the installed php version
CGI_PKG=$(dpkg -l "*php*" | egrep -i "ii.*php.*-cli" | sed -E 's/.*(php.*-)(cli).*/\1cgi/')
apt install ${CGI_PKG}


print_msg "Checking out CGP from Github to: " ${CGP_ROOT}
[[ ! -d "${CGP_ROOT}" ]] && git -C ${WEBROOT} clone https://github.com/pommi/CGP.git


print_msg "Copying config files"
sed 's@##PLUGIN_DIR##@'"${PWD}"'@' < conf/cobalt.conf.tmpl > /tmp/cobalt.conf
cp -v /tmp/cobalt.conf ${COLLECTD_CONF_DIR}/cobalt.conf

[[ "${RRD_ENABLED}" -eq "0" ]] && cp -v conf/rrd.conf ${COLLECTD_CONF_DIR}/
cp -v conf/csv.conf ${COLLECTD_CONF_DIR}/
# Change graph display defaults in CGP config
patch --forward -r - ${CGP_ROOT}/conf/config.php < conf/CGP_conf.patch
[[ "${RRD_ENABLED}" -eq "1" ]] && cp -v conf/standard_types.conf ${COLLECTD_CONF_DIR}/


print_msg "Restarting services"
lighty-enable-mod fastcgi fastcgi-php
service collectd restart
service lighttpd restart

print_msg "Cobalt DevTools do not currently listen on 'localhost' or 127.0.0.1"
print_msg "Please manually edit target IP address to your adapter IP address in " ${COLLECTD_CONF_DIR}/cobalt.conf
ifconfig | egrep "inet " | sed -E "s/.*inet (.*) netmask.*/\1/" | egrep -v "127.0.0.1"

