#!/usr/bin/env bash

# Ensure that default values are set.
fhs_dirs=(bin etc include lib libexec sbin share man)

declare -a package_dependencies

true "${package_name:=${extension}}" \
  "${source_path:="${bdsm_path}/src"}" \
  "${archives_path:="${bdsm_path}/archives"}" \
  "${install_base_path:="${packages_path}/${package_name}"}" \
  ${static_flag:=0}

if user_is_root
then
  true \
    "${log_path:="/var/log/${package_name}"}" \
    "${package_user:="${package_name}"}"
else
  true \
    "${log_path:="${packages_path}/log"}" \
    "${package_user:="$USER"}"
fi

extension_patches_path="${extension_path}/patches"
case "${package_name}" in
  *=*) # exact version specifier
    package_version="${package_name##*=}"
    package_name="${package_name%%=*}"
    ;;
  *:*) # minimum version specifier
    # TODO: concept of 'minimum' ;)
    package_version="${package_name##*:}"
    ;;
esac

# Ensure that package_version is set at this point
if variable_is_empty package_version
then
  read_default version prefix package
fi

if variable_is_nonempty package_version
then
  install_path="${install_base_path}/${package_version}"
else
  case ${package_name} in
    bdsm|extension)
      true # ignore.
      ;;
    *)
      log "ERROR: package_version must be defined when using package module. \n(Hint: set version=x.y.z in the extension's config/defaults file.)"
      ;;
  esac
fi

variable_is_nonempty package_base_url  || read_default base_url prefix package
variable_is_nonempty package_md5_url   || read_default md5_url prefix package
variable_is_nonempty archive_format    || read_default archive_format
variable_is_nonempty init_scripts_path || init_scripts_path="$(init_scripts_path)"

true "${archive_format:=tar.gz}"

ensure_paths_exist "${active_path}"

(
enter "${active_path}"
ensure_paths_exist ${fhs_dirs}
)

# Not on OSX?
# LDFLAGS="-L${active_path}/lib ${LDFLAGS:-}"
# CFLAGS="-I${active_path}/include ${CFLAGS:-} "

export package_name packages_path package_name package_version archive_format package_file package_url package_md5_url packages_path bin_path source_path LDFLAGS CFLAGS


