#!/bin/bash

# check to see if this file is being run or sourced from another script
_is_sourced() {
	# https://unix.stackexchange.com/a/215279
	[ "${#FUNCNAME[@]}" -ge 2 ] \
		&& [ "${FUNCNAME[0]}" = '_is_sourced' ] \
		&& [ "${FUNCNAME[1]}" = 'source' ]
}

env_list=$(find /opt/drycc/*/env/* 2>/dev/null || echo "")
for env in ${env_list}
do
  key=$(echo "${env}" | awk -F "/" '{print $NF}')
  value=$(<"${env}")
  # shellcheck source=/dev/null
  export "${key}=${value}"
done

env_launch_list=$(find /opt/drycc/*/env.launch/* 2>/dev/null || echo "")
for env in ${env_launch_list}
do
  key=$(echo "${env}" | awk -F "/" '{print $NF}')
  value=$(<"${env}")
  # shellcheck source=/dev/null
  export "${key}=${value}"
done

profile_list=$(find /opt/drycc/*/profile.d/* 2>/dev/null || echo "")
for profile in ${profile_list}
do
  # shellcheck source=/dev/null
  . "${profile}"
done

exec_list=$(find /opt/drycc/*/exec.d/* 2>/dev/null) || echo ""
for _exec in ${exec_list}
do
  "${_exec}"
done

if ! _is_sourced; then
  if [[ "$$" == "1" ]] ; then
    exec tini -g -- "$@"
  else
    exec tini -sg -- "$@"
  fi
fi