aboutsummaryrefslogtreecommitdiff
path: root/alt
diff options
context:
space:
mode:
Diffstat (limited to 'alt')
-rwxr-xr-xalt/kiss-exec23
-rwxr-xr-xalt/kiss-getchoice16
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"