#!/bin/bash

# upgrades return found, clean installs return 0
# interruptions return last stage number recorded (1-9)
if [ -f /etc/iiab/iiab.env ]; then
    source /etc/iiab/iiab.env
    STAGE=$STAGE
else
    STAGE=0
fi

OS=`grep ^ID= /etc/*elease|cut -d= -f2`
OS=${OS//\"/}
VERSION_ID=`grep VERSION_ID /etc/*elease | cut -d= -f2`
VERSION_ID=${VERSION_ID//\"/}
VERSION_ID=${VERSION_ID%%.*}
OS_VER=$OS-$VERSION_ID
DHCPCD_PATH=`which dhcpcd`
NM_PATH=`which NetworkManager`

case $OS_VER in
    "fedora-18" | \
    "fedora-22" | \
    "debian-8"  | \
    "debian-9"  | \
    "debian-10" | \
    "ubuntu-16" | \
    "ubuntu-17" | \
    "ubuntu-18" | \
    "centos-7"  | \
    "raspbian-8"| \
    "raspbian-9")
        ;;
    *)	OS_VER="OS_not_supported"
        ;;
esac
# get current version
BRANCH=`git rev-parse --abbrev-ref HEAD`
COMMIT=`git rev-parse --verify HEAD`

if [ -d /usr/lib64/php ]; then
    PHPLIB_DIR=/usr/lib64/php
else
    if [ -d /usr/lib/php5 ]; then
        PHPLIB_DIR=/usr/lib/php5
    else
        PHPLIB_DIR=/usr/lib/php
    fi
fi

if [ -f /proc/device-tree/mfg-data/MN ]; then
    XO_VERSION=`cat /proc/device-tree/mfg-data/MN`
else
    XO_VERSION="none"
fi

ANSIBLE_VERSION=$(ansible --version|head -n 1|cut -f 2 -d " ")

if [ ! x$DHCPCD_PATH = x ]; then
    DHCPCD=`systemctl is-enabled dhcpcd`
fi
# the check is debian family only is_redhad would use NetworkManager as the
# service name.
if [ ! x$NM_PATH = x ]; then
    NM=`systemctl is-enabled network-manager`
fi
SYSD_NETD=`systemctl is-enabled systemd-networkd`

cat <<EOF
{"phplib_dir"             : "$PHPLIB_DIR",
"stage"                   : "$STAGE",
"dhcpcd"                  : "$DHCPCD",
"network_manager"         : "$NM",
"systemd_networkd"        : "$SYSD_NETD",
"iiab_branch"             : "$BRANCH",
"iiab_commit"             : "$COMMIT",
"xo_model"                : "$XO_VERSION",
"ansible_version"         : "$ANSIBLE_VERSION",
"os"                      : "$OS",
"os_ver"                  : "$OS_VER"}

EOF
