cpt

[ARCHIVED] Carbs Packaging Tools
git clone git://git.ckyln.com/~cem/cpt.git
Log | Files | Refs | README | LICENSE

commit e4c148973ab0aac171a5433ae1e43bf0b1676eb9
parent 565648c70f46b9211b96a1eff2894ec19480f5f8
Author: Cem Keylan <cem@ckyln.com>
Date:   Sat,  4 Apr 2020 23:41:37 +0300

kiss-link: simplify and add support for multiple files

Diffstat:
Mcontrib/kiss-link | 45++++++++-------------------------------------
1 file changed, 8 insertions(+), 37 deletions(-)

diff --git a/contrib/kiss-link b/contrib/kiss-link @@ -1,45 +1,16 @@ #!/bin/sh -ef -[ "$1" ] || { - printf 'usage: kiss-link file\n' - exit 1 -} - -[ -f "${file:=$1}" ] || { - printf 'file %s does not exist in the current directory\n' "$1" - exit 1 -} - -oPWD=$PWD +[ "$1" ] || { printf 'usage: kiss-link [file] [file]\n' ; exit 0 ;} # Check if the package exists in a repository and error out here # if it does not. The error message from the package manager will # be displayed. -kiss s "${PWD##*/}" >/dev/null - -# Disable this warning as globbing is disabled and word splitting -# is intentional. This grabs the location of the package's files. -# shellcheck disable=2046 -{ - # Generate a list of repositories in which the package - # exists. Then 'cd' to the first found directory to do a - # comparison. - set -- $(kiss s "${PWD##*/}"); cd "$1" - - # Error if the package exists nowhere but the current - # directory and this script would create a broken symlink. - [ -z "$2" ] && [ "$PWD" = "$oPWD" ] && { - printf 'error: cannot symlink file to itself\n' - exit 1 - } - - # If the first repository in '$KISS_PATH' is the current - # directory, use the second repository in the list. - [ "$PWD" = "$oPWD" ] && shift +kiss s "${PKG:=${PWD##*/}}" >/dev/null - # Finally, make the link to the file in whatever repository - # it was found in. - ln -sf "$1/$file" "$file" -} +oPKG="$(kiss s "$PKG" | grep -v "^$PWD\$\|/var/db/kiss/installed/$PKG" | sed 1q)" -printf 'linked %s to %s\n' "$file" "$1" +for file in "$@" ; do + [ -e "${oPKG:?}/$file" ] + ln -sf "$oPKG/$file" "$file" + printf 'linked %s to %s\n' "$oPKG/$file" "$PWD/$file" +done