#!/usr/bin/env bash
# shellcheck disable=SC1090
export starting="${BASH_SOURCE[0]}"; debug.sh starting
[[ ! "${TESTS-}" ]] || start="$( date +%s )"

export TIMES=True

BASH_RC_DIR=$( cwd="$(pwd)"; cd "${BASH_SOURCE[0]%/*}" || exit; pwd; cd "${cwd}" || exit; ); export BASH_RC_DIR
BASH_RC_NAME="${BASH_SOURCE[0]##*/}"; export BASH_RC_NAME
BASH_RC_PATH="${BASH_RC_DIR}/${BASH_RC_NAME}"; export BASH_RC_PATH


function source_files() {
  local _script
  while (( "$#" )); do
    _script="${BASH_RC_PATH}-${1}"
    if test -f "${_script}"; then
      source "${_script}"
    else
      error.sh "$1 ${_script}" "not found"; return 1
    fi
    shift
  done
};

source_files vars dirs paths distro


! test -e "${PASSWD_PATH}" || source "${PASSWD_PATH}"
echo "${PASSWORD}" | sudo -S true > /dev/null 2>&1
! test -e "${SECRETS_PATH}" || source "${SECRETS_PATH}"

for var in USERNAME USERHOME PASSWD_PATH BASH_RC_PROJECT GITHUB_USERNAME GITHUB_ORGANIZATION_USERNAME \
           SECRETS_REPO GITHUB_SECRETS_PATH SECRETS_PATH PASSWORD INTERNET GITHUB_PRIVATE_URL \
           GITHUB_SECRETS_URL GITHUB_ORGANIZATION_PASSWORD BASH_RC_DIR BASH_RC_NAME BASH_RC_PATH; do
  debug.sh "${var}"
done

## SHELL ROOT
if test -n "${DARWIN}" && [[ "$( id -u )" == "0" ]] || [[ "${SUDO_UID-}" ]]; then
  if [[ -f /usr/local/bin/bash ]] && [[ "${SHELL}" != /usr/local/bin/bash ]]; then
    /usr/bin/sudo /usr/bin/chsh -s /usr/local/bin/bash > /dev/null 2>&1
    export SHELL=/usr/local/bin/bash
  fi
fi

# Variables and paths before return for non-interactive to have it in PyCharm, etc.
test -n "${PS1}" || return

source_files aliases functions completions iterm2 misc

unset starting source_name source_path var
