diff options
author | merakor <cem@ckyln.com> | 2020-05-14 16:52:07 +0000 |
---|---|---|
committer | merakor <cem@ckyln.com> | 2020-05-14 16:52:07 +0000 |
commit | 58d4ecb240f0be3374511da3899c06a43e863287 (patch) | |
tree | a70f208a0be9236b5e9ea9253fb7c36970587730 | |
parent | eb3d0f5358796be34ff5327740c236e669dec48c (diff) | |
download | cpt-58d4ecb240f0be3374511da3899c06a43e863287.tar.gz |
contrib: add kiss-exec
FossilOrigin-Name: 59a86c20536e077ffe51f1e9e04af6644fe20b85f3ff2c5ee2a9231a4e78edea
-rw-r--r-- | CHANGELOG.md | 3 | ||||
-rwxr-xr-x | contrib/kiss-exec | 23 |
2 files changed, 26 insertions, 0 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index 59a4eb7..7a0fdef 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,9 @@ this project _somewhat_ adheres to [Semantic Versioning]. UNRELEASED ---------- +### Added +- Added `kiss-exec`, a tool to execute commands inside the alternatives system. + ### Changed - Replaced `KISS_COLOUR` with `KISS_COLOR` to match upstream. - Renamed `colour` variable to `color` for consistency. diff --git a/contrib/kiss-exec b/contrib/kiss-exec new file mode 100755 index 0000000..d2b3217 --- /dev/null +++ b/contrib/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" "$@" |