diff options
author | Starfall <us@starfall.systems> | 2024-01-08 09:40:24 -0600 |
---|---|---|
committer | Starfall <us@starfall.systems> | 2024-01-08 09:40:24 -0600 |
commit | a91d41375fc87c958f0b4b2ec09d5bfa2bab9414 (patch) | |
tree | 5ecf2d3f5b5962bb2d317ad4ce1fddd88e8b0ed7 /noarch/package_install.sh |
Diffstat (limited to 'noarch/package_install.sh')
-rwxr-xr-x | noarch/package_install.sh | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/noarch/package_install.sh b/noarch/package_install.sh new file mode 100755 index 0000000..b94cd3e --- /dev/null +++ b/noarch/package_install.sh @@ -0,0 +1,76 @@ +#!/bin/sh + +SCRIPTS_DIR="$(dirname "$0")" + +# load 'scripting' run-time support utility functions +. "${SCRIPTS_DIR}/scripting_utils" + +# load 'package' run-time support utility functions +. "${SCRIPTS_DIR}/package_utils" + +#. "${SCRIPTS_DIR}/packet.sh" +environment_init $(basename "$0" ".sh") + +if [ $# -ne 1 ] ; then + show_nls_message "**** Usage: \${0} package" + exit 1 +fi +load_package "$1" + + +MISSING_REQUIREMENTS="$(get_missing_requirements)" +log_variable MISSING_REQUIREMENTS +if [ -n "${MISSING_REQUIREMENTS}" ] ; then + report_missing_requirements "${MISSING_REQUIREMENTS}" + exit 1 +fi + +IS_INSTALL_NECESSARY="$(isInstallNecessary)" +log_variable IS_INSTALL_NECESSARY +if ! ${IS_INSTALL_NECESSARY} ; then + report_no_install_reason + log_message "Skipping package '${PACKAGE_NAME}'/'$(dist_version)' installation since version '$(version)' is already installed" + exit 0 +fi + +if ! have_root_permissions ; then + show_nls_message "**** Root privileges are required" + exit 1 +fi + +# attempt to install dependencies +DEPENDENCIES="$(dependencies)" +log_variable DEPENDENCIES +for DEPENDENCY in ${DEPENDENCIES} ; do + log_message "invoking: ${SCRIPTS_DIR}/package_install.sh" "${DEPENDENCY}" + if ! "${SCRIPTS_DIR}/package_install.sh" "${DEPENDENCY}" ; then + log_message "dependency installation failure" + exit 1 + fi +done + +log_message "removing previously installed files (if present)" +remove_package_files + +# register package as dependency +register_dependency + +# package specific install +log_message "installing package" +do_install + +# install version file (if available) +DIST_VERSION_FILE="$(_dist_version_file "${PACKAGE_NAME}" "${PACKAGE_SUFFIX}")" +log_variable DIST_VERSION_FILE +if [ -r "${DIST_VERSION_FILE}" ] ; then + VERSION_FILE="$(_version_file "${PACKAGE_NAME}" "${PACKAGE_SUFFIX}")" + log_variable VERSION_FILE + install_p "${DIST_VERSION_FILE}" "${VERSION_FILE}" 2>&1 | log_redirected_output +else + log_message "'${DIST_VERSION_FILE}' is unavailable" +fi + +# report end of install +after_install + +log_message "finished" |