###
# ~~~~~~licensing~~~~~~
# entaxy-hawtio
# ==========
# Copyright (C) 2020 - 2021 EmDev LLC
# ==========
# 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.
# ~~~~~~/licensing~~~~~~
###
echo 
echo
echo "************"
echo "Welcome to Entaxy Hawtio installation script"
echo "************"

echo
echo "** Checking feature repository: ru.entaxy.esb.ui/entaxy-hawtio/${project.version}/xml/features ..."

_repo = (feature:repo-list | grep ru.entaxy.esb.ui/entaxy-hawtio)
_repo_length = ($_repo length)
if { $_repo_length'' equals "0" } {
	echo "\>\> Installing Entaxy Hawtio repository..."
	feature:repo-add mvn:ru.entaxy.esb.ui/entaxy-hawtio/${project.version}/xml/features
	echo "\>\> ... installed"
} else {
	echo "\>\> Entaxy Hawtio repository is already installed"
}

echo
echo "** Checking entaxy-underlying-configuration feature ..."

_config = [((feature:list | grep entaxy-underlying-configuration) split '\|')]
_status = (($_config get 3) trim)

_in_shutdown = "0"

if { $_status equals "Uninstalled" } {
	echo "\>\> Installing feature..."
	feature:install entaxy-underlying-configuration
	echo "\>\> ... installed"
	echo
	if { $1'' equals "skipReboot" } {
		echo "** the system will skip reboot for applying JRE exports"	
		echo " \( see etc/jre.properties \)"
		echo " due to 'skipReboot argument'"
		echo "** If further installation will fail with errors please reboot"
	} else {
		echo "** the system will reboot now to apply JRE exports"
		echo " \( see etc/jre.properties \)"
		echo
		echo "** PLEASE RUN THE SCRIPT AGAIN AFTER RESTART **"
		_in_shutdown = "1"
		shutdown -r -f
	}
} else {
	echo "\>\> Entaxy configuration is already installed"
}

# shutdown goes async so karaf can begin next installation while rebooting
# so we use marker to prevent it
if { $_in_shutdown equals "0" } {

	echo
	_config = [((feature:list | grep entaxy-underlying-configuration) split '\|')]
	_status = (($_config get 3) trim)
	if { NOT { $_status equals "Started" } } {
		echo "** Current configuration feature status is " $_status
		echo "** Please clean the container and run installation again "
	} else {
		echo
		echo "** Installing Entaxy Hawtio components in verbose mode..."
		_hawtio = [((feature:list | grep entaxy-hawtio) split '\|')]
		_status = (($_hawtio get 3) trim)
		if { $_status equals "Uninstalled" } {
			feature:install -v -r entaxy-hawtio
			echo
			echo "\>\> ... installed"
		} else {
			echo "\>\> Entaxy Hawtio is already installed"
		}
	}
	
	echo
	echo "** Thank you!"

}
