# helper_functions.inc.sh: General helper functions

# Check pip to see if the given package is installed
# (returns 0 if installed, 2 if not installed)
check_system_pip_for () {
  local package_name="${1}"

  # Use 'pip list' to see if the requested package is already installed
  pip list --format=columns --disable-pip-version-check | \
    grep -Fe "${package_name}" >/dev/null 2>&1
  return $?
}

pip_install () {
  local packages="${1}"
  local flags="${2}"

  run_command "pip install ${flags} ${packages}"
  return $?
}

# Used whenever an environment sensitive command is being run
run_command () {
  local cmd="${1}"

  pipenv run ${cmd}
  return $?
}

migrate_db() {
  # Run migrations
  run_command "alembic upgrade head"
}

seed_db() {
  run_command "python ./script/seed_roles.py"
}

reset_db() {
  local database_name="${1}"

  # If the DB exists, drop it
  set +e
  dropdb "${database_name}"
  set -e

  # Create a fresh DB
  createdb "${database_name}"

  # Run migrations
  migrate_db

  # Seed database data
  seed_db
}

output_divider() {
  if tty -s; then
    echo "$( tput bold )$( tput smul )$( tput setaf 6 )${1}$( tput sgr 0)"
  else
    echo $1
  fi
}

warning() {
  if tty -s; then
    echo "$( tput bold )$( tput setaf 1 )${1}$( tput sgr 0)"
  else
    echo $1
  fi
}
