diff options
Diffstat (limited to 'src/cpt-alternatives')
-rwxr-xr-x | src/cpt-alternatives | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/src/cpt-alternatives b/src/cpt-alternatives new file mode 100755 index 0000000..f0d2be0 --- /dev/null +++ b/src/cpt-alternatives @@ -0,0 +1,33 @@ +#!/bin/sh -ef +# List and swap to alternatives + +# shellcheck disable=1091 +if command -v cpt-lib >/dev/null; then . cpt-lib; else . ./cpt-lib; 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 |