#!/usr/bin/bash

startdir=$PWD

basedir=/root/elt
if [ -n "$PUPPET_BASEDIR" ]; then
    basedir="$PUPPET_BASEDIR"
fi

cd $basedir

# Reexport some vars as facts to make configuration easier
export FACTER_ELT_ROLE=${ELT_ROLE}
if [ -z "$ELT_DM" ]; then
  export FACTER_ELT_DM=no
else
  export FACTER_ELT_DM=${ELT_DM}
fi


export FACTER_ELT_RELEASE=`rpm -q --qf '%{version}-%{release}' elt-devenv-release`
# Strip all version suffixes like ~alpha, ~beta, ^1.g015b0b19 etc from the version number
export FACTER_ELT_REPO=`rpm -q --qf '%{version}' elt-devenv-release | grep -o '^[^~^]*'`

## Start a progress indicator
while :; do
sleep 5
printf "."
done &
## store the background process's ID
bgid=$!

sudo -E /usr/bin/puppet apply --config "$basedir/puppet/puppet.conf" --noop --test "$basedir/puppet/manifest/" --disable_warnings deprecations 2>&1 | grep -v "Would have triggered 'refresh' from\|Info: Loading facts in\|Error: NetworkManager is not running"

#
# Some output messages are filtered to make output more readable:
#
#  "Would have triggered 'refresh' from" -> just telling number of executions
#  "Info: Loading facts in" -> telling from where the facts are loaded
#  "Error: NetworkManager is not running" -> notification due to bug https://tickets.puppetlabs.com/browse/FACT-697

kill "$bgid"
wait "$bgid" 2>/dev/null

# TODO workaround implemented as part of ELTDEV-811
kernelargs=`grep "kernelargs =" puppet/modules/ESO/eltdev/manifests/init.pp | awk -F \' '{print $2}'`
are_kernelargs_set=`grep "$kernelargs" /proc/cmdline`
if [ -z "$are_kernelargs_set" ]
then
 echo "Warning: kernel arguments [$kernelargs] are not set correctly. A reboot may be required."
fi

cd $startdir
exit 0
