aboutsummaryrefslogtreecommitdiff
path: root/tools/cpt-alternatives
diff options
context:
space:
mode:
authormerakor <cem@ckyln.com>2020-07-24 08:22:39 +0000
committermerakor <cem@ckyln.com>2020-07-24 08:22:39 +0000
commit87b7b5e6f85f1d84e0aadab1df6901febc871be1 (patch)
tree74aaad41c2f7548ab8d4d1cb2532d43fd2c990a5 /tools/cpt-alternatives
parent8c5271501560c0cf491b5b8b34f67a00158591a1 (diff)
downloadcpt-87b7b5e6f85f1d84e0aadab1df6901febc871be1.tar.gz
cpt: add packaging tools
FossilOrigin-Name: 99d5c6ac9e3077e0441a7431c1c9a4bc9e365d23e894c7c92d2f8f1006b4cda0
Diffstat (limited to 'tools/cpt-alternatives')
-rwxr-xr-xtools/cpt-alternatives32
1 files changed, 32 insertions, 0 deletions
diff --git a/tools/cpt-alternatives b/tools/cpt-alternatives
new file mode 100755
index 0000000..5b0007e
--- /dev/null
+++ b/tools/cpt-alternatives
@@ -0,0 +1,32 @@
+#!/bin/sh -ef
+
+# shellcheck disable=1091
+if command -v cpt-lib >/dev/null; then . cpt-lib; else . ../lib.sh; fi
+
+case "$1" in --version|--help|-v|-h|'') ;; *)
+ [ -w "$CPT_ROOT/" ] || [ "$uid" = 0 ] || {
+ as_root "$0" "$@"
+ exit $?
+ }
+esac
+
+case "$1" in
+ --help|-h)
+ out "usage: ${0##*/} [-] [pkg file]"
+ exit 1
+ ;;
+ --version|-v) version ;;
+ -)
+ while read -r pkg path; do
+ pkg_swap "$pkg" "$path"
+ done
+ ;;
+ '')
+ # Go over each alternative and format the file name for listing.
+ # (pkg_name>usr>bin>ls)
+ set +f; for pkg in "$sys_db/../choices/"*; do
+ printf '%s\n' "${pkg##*/}"
+ done | sed 's|>| /|; s|>|/|g; /\*/d'
+ ;;
+ *) pkg_swap "$@" ;;
+esac