diff options
Diffstat (limited to 'alt')
-rwxr-xr-x | alt/kiss-exec | 23 | ||||
-rwxr-xr-x | alt/kiss-getchoice | 16 |
2 files changed, 39 insertions, 0 deletions
diff --git a/alt/kiss-exec b/alt/kiss-exec new file mode 100755 index 0000000..d2b3217 --- /dev/null +++ b/alt/kiss-exec @@ -0,0 +1,23 @@ +#!/bin/sh +# Execute a command inside the alternatives system + +usage() { + printf '\033[1;33m-> \033[m%s\n' "usage: ${0##*/} [pkg] [command]" + exit "$1" +} + +case "$1" in ''|--help|-h) usage 0; esac +[ "$2" ] || usage 1 + +pkg=$1 + +[ "${2##/*}" ] && command=">usr>bin>$2" || + command="$(printf '%s' "$2" | sed 's#/#>#g')" + +[ -h "${file:=/var/db/kiss/choices/$pkg$command}" ] && { + printf 'ERROR: %s\n' "$file is a symlink" + exit 1 +} + +shift 2 +exec "/var/db/kiss/choices/$pkg$command" "$@" diff --git a/alt/kiss-getchoice b/alt/kiss-getchoice new file mode 100755 index 0000000..75521b4 --- /dev/null +++ b/alt/kiss-getchoice @@ -0,0 +1,16 @@ +#!/bin/sh -e +# Prints the full path to a file in the alternatives system. + +case "$1" in ''|--help|-h) + printf '\033[1;33m-> \033[m%s\n' "usage: ${0##*/} [pkg] [command]" + exit 0; esac + +~/proj/carbslinux/kiss/kiss l "$1" >/dev/null + +[ "$2" ] +file="/var/db/kiss/choices/$1$(printf '%s' "$2" | sed 's#/#>#g')" +[ -f "$file" ] || { + printf '\033[1;33m!> \033[1;36m%s \033[m%s\n' "$1" "choice '$2' not found" >&2 + exit 1 +} +printf '%s\n' "$file" |