# Copyright (c) 2019-2023 Digital Energy Cloud Solutions LLC. All Rights Reserved.
# Authors:
# Tim Tkachev, <tvtkachev@basistech.ru>
#
# 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.
#
# Installer uses basistech.ru/tf/dynamix as path value to provider binary.

set -e

filename="bin"/*

version=$(basename $filename | cut -d '_' -f 2)
os=$(basename $filename | cut -d '_' -f 3)
arch=$(basename $filename | cut -d '_' -f 4)

plugins_dir=~/.terraform.d/plugins/
provider_path=basistech.ru/tf/dynamix/$version/$os\_$arch/

print_info () {
cat <<EOF

Copy this provider configuration to main.tf file
terraform {
  required_providers {
    basis = {
      version = "$version"
      source  = "basistech.ru/tf/dynamix"
    }
  }
}
EOF
}

install () {
	if [[ -d $plugins_dir$provider_path ]]
	then
		echo "Provider directory already exists, checking for decort provider executable.."
		if [[ ! "$(ls -A $plugins_dir$provider_path)" ]]; then
			cp bin/terraform-provider-dynamix_$version\_$os\_$arch $plugins_dir$provider_path/terraform-provider-dynamix_$version\_$os\_$arch
			print_info
		else
			echo "BASIS provider version $version is already installed. Exiting.."
			print_info
		fi
	else
		echo "Creating provider directory.."
		mkdir -p $plugins_dir/$provider_path
		cp bin/terraform-provider-dynamix_$version\_$os\_$arch $plugins_dir$provider_path/terraform-provider-dynamix_$version\_$os\_$arch
		echo "BASIS provider version $version has been successfully installed"
		print_info
	fi
}

case "$OSTYPE" in 
	linux*) install ;;
	darwin*) install ;;
	bsd*) install ;;
	msys*) echo "Use bat script to install BASIS provider on Windows machine." ;;
	cygwin*) echo "Use bat script to install BASIS provider on Windows machine." ;;
esac
