forked from kiss-community/kiss
kiss: minor changes
This commit is contained in:
parent
2762822180
commit
e1fa886562
71
kiss
71
kiss
@ -127,18 +127,22 @@ pkg_lint() {
|
||||
pkg_find() {
|
||||
# Figure out which repository a package belongs to by searching for
|
||||
# directories matching the package name in $KISS_PATH/*.
|
||||
query=$1 all=$2 what=$3 IFS=:
|
||||
_query=$1
|
||||
_paths=${2:-"$KISS_PATH:$sys_db"}
|
||||
_print=$3
|
||||
_type=${4:--d}
|
||||
|
||||
IFS=:
|
||||
set --
|
||||
|
||||
# Globbing disabled for KISS_PATH word-splitting
|
||||
for path in $KISS_PATH "${what:-"$sys_db"}"; do
|
||||
# Globbing is disabled, splitting is intentional.
|
||||
for _path in $_paths; do
|
||||
set +f
|
||||
|
||||
# Globbing enabled for search.
|
||||
for path2 in "$path/"${query%%/*}; do
|
||||
test "${what:--d}" "$path2" &&
|
||||
set -f -- "$@" "$path2"
|
||||
for _path2 in "$_path"/${_query%%/*}; do
|
||||
test "$_type" "$_path2" &&
|
||||
set -f -- "$@" "$_path2"
|
||||
done
|
||||
done
|
||||
|
||||
@ -146,11 +150,12 @@ pkg_find() {
|
||||
repo_dir=$1
|
||||
|
||||
[ "$1" ] || {
|
||||
log "Package '$query' not in any repository"
|
||||
log "Package '$_query' not in any repository"
|
||||
return 1
|
||||
}
|
||||
|
||||
[ -z "$all" ] || printf '%s\n' "$@"
|
||||
[ -z "$_print" ] ||
|
||||
printf '%s\n' "$@"
|
||||
}
|
||||
|
||||
pkg_list() {
|
||||
@ -1413,7 +1418,7 @@ args() {
|
||||
|
||||
s|search)
|
||||
for pkg do
|
||||
pkg_find "$pkg" all
|
||||
pkg_find "$pkg" '' all
|
||||
done
|
||||
;;
|
||||
|
||||
@ -1442,35 +1447,24 @@ args() {
|
||||
;;
|
||||
|
||||
help-ext)
|
||||
log 'Installed extensions (kiss-* in PATH)'
|
||||
log 'Extensions (kiss-* in PATH)'
|
||||
|
||||
# shellcheck disable=2046
|
||||
# see [1] at top of script.
|
||||
set -- $(KISS_PATH=$PATH pkg_find kiss-\* all -x)
|
||||
pkg_find kiss-\* "$PATH" all -x |
|
||||
|
||||
# To align descriptions figure out which extension has the longest
|
||||
# name by doing a simple 'name > max ? name : max' on the basename
|
||||
# of the path with 'kiss-' stripped as well.
|
||||
#
|
||||
# This also removes any duplicates found in '$PATH', picking the
|
||||
# first match.
|
||||
for path do p=${path#*/kiss-}
|
||||
case " $seen " in
|
||||
*" $p "*) shift ;;
|
||||
*) seen=" $seen $p " max=$((${#p} > max ? ${#p}+1 : max))
|
||||
esac
|
||||
while read -r file; do
|
||||
name=${file#*/kiss-}
|
||||
|
||||
contains "$list" "$name" || {
|
||||
list=" $list $name "
|
||||
|
||||
printf '%-15s ' "$name"
|
||||
sed -n 's/^# *//;2p' "$file"
|
||||
}
|
||||
done
|
||||
|
||||
# Print each extension, grab its description from the second line
|
||||
# in the file and align the output based on the above max.
|
||||
for path do
|
||||
printf "%b->%b %-${max}s " "$lcol" "$lclr" "${path#*/kiss-}"
|
||||
sed -n 's/^# *//;2p' "$path"
|
||||
done >&2
|
||||
;;
|
||||
|
||||
*)
|
||||
KISS_PATH=$PATH pkg_find "kiss-$action*" "" -x 2>/dev/null ||
|
||||
pkg_find "kiss-$action*" "$PATH" '' -x 2>/dev/null ||
|
||||
die "'kiss $action' is not a valid command"
|
||||
|
||||
"$repo_dir" "$@"
|
||||
@ -1489,7 +1483,11 @@ main() {
|
||||
|
||||
# Allow the user to disable colors in output via an environment variable.
|
||||
# Check this once so as to not slow down printing.
|
||||
[ "$KISS_COLOR" = 0 ] || lcol='\033[1;33m' lcol2='\033[1;34m' lclr='\033[m'
|
||||
[ "$KISS_COLOR" = 0 ] || {
|
||||
lcol='\033[1;33m'
|
||||
lcol2='\033[1;34m'
|
||||
lclr='\033[m'
|
||||
}
|
||||
|
||||
# The PID of the current shell process is used to isolate directories
|
||||
# to each specific KISS instance. This allows multiple package manager
|
||||
@ -1517,9 +1515,10 @@ main() {
|
||||
# This is used enough to warrant a place here.
|
||||
uid=$(id -u)
|
||||
|
||||
# Make sure that the KISS_ROOT doesn't end with a '/'. This might break
|
||||
# some operations if left unchecked.
|
||||
KISS_ROOT=${KISS_ROOT%/} KISS_ROOT=${KISS_ROOT%/} KISS_ROOT=${KISS_ROOT%/}
|
||||
# (lazily) ensure that the KISS_ROOT doesn't end with a '/'.
|
||||
KISS_ROOT=${KISS_ROOT%/}
|
||||
KISS_ROOT=${KISS_ROOT%/}
|
||||
KISS_ROOT=${KISS_ROOT%/}
|
||||
|
||||
# Define some paths which we will then use throughout the script.
|
||||
sys_db=$KISS_ROOT/${pkg_db:=var/db/kiss/installed}
|
||||
|
Loading…
Reference in New Issue
Block a user