diff options
author | merakor <cem@ckyln.com> | 2020-07-24 14:11:03 +0000 |
---|---|---|
committer | merakor <cem@ckyln.com> | 2020-07-24 14:11:03 +0000 |
commit | 3bbb028b00fafc5c0d5e47c96e21a61ef5e842ac (patch) | |
tree | bef990822c87175e2eb074ae3961863a5b175c98 /src/cpt-install | |
parent | 0d634aa1f1710d949a5498cd3803a17c5426ca6a (diff) | |
download | cpt-3bbb028b00fafc5c0d5e47c96e21a61ef5e842ac.tar.gz |
tools: move to src
FossilOrigin-Name: e320e235b6dd6b0d4b0d04df12c1c5e481c524412d286dc6375b6cd4231eed8b
Diffstat (limited to 'src/cpt-install')
-rwxr-xr-x | src/cpt-install | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/cpt-install b/src/cpt-install new file mode 100755 index 0000000..e886ad4 --- /dev/null +++ b/src/cpt-install @@ -0,0 +1,51 @@ +#!/bin/sh +# Install a package + +# shellcheck disable=1091 +if command -v cpt-lib >/dev/null; then . cpt-lib; else . ./cpt-lib; fi + +while [ "$1" ]; do + case "$1" in + --help|-h) + out "usage: ${0##*/} [options] [pkg...]" "" \ + " Options:" \ + " --force Force installation" \ + " --root [rootdir] Use an alternate root directory" "" + exit 1 + ;; + --version|-v) version ;; + --force) export CPT_FORCE=1 ;; + --root) export CPT_ROOT=$2; shift 2 ;; + --) break ;; + -*) die "Unknown argument '$1'" ;; + *) break ;; + esac +done + +[ "$1" ] || set -- "${PWD##*/}"; export CPT_PATH=${PWD%/*}:$CPT_PATH + +[ -w "$CPT_ROOT/" ] || [ "$uid" = 0 ] || { + as_root "$0" "$@" + exit $? +} + +pkg_order "$@" + +# shellcheck disable=2154 +for pkg in $order; do pkg_install "$pkg"; done + +# After installation is complete, show a list of messages from packages. +log "Retrieving post-installation message queue" +unset msg + +for pkg in $order; do + [ -f "$sys_db/$pkg/message" ] && { + printf '%s\n%s\n%s\n\n' \ + "=======================================" \ + "$pkg" \ + "=======================================" + cat "$sys_db/$pkg/message" >&2 + msg=1 + } +done +[ "$msg" ] || log "No message in queue" |