Compare commits

..

1 Commits

Author SHA1 Message Date
phoebos 5cd40a62c0
kiss: don't pkg_order for checksum, download, list
These actions do not need a special order or dependency information.
The pkg_order function recurses through dependencies which is
unnecessary and takes extra time. For the packages with the most deps,
this patch can result in a 5-10x decrease in run time.
2023-07-19 15:49:23 +01:00
4 changed files with 7 additions and 49 deletions

View File

@ -1,9 +0,0 @@
steps:
build:
image: alpine
when:
branch: [ master ]
commands: |
apk add --no-cache shellcheck
shellcheck kiss contrib/*

View File

@ -1,16 +0,0 @@
#!/bin/sh -ef
# Display a package's dependencies in repositories
pkg=${1:-"${PWD##*/}"}
kiss search "$pkg" >/dev/null || {
printf 'usage: kiss-depends [pkg]\n' >&2
exit 1
}
kiss search "$pkg" | while read -r pkgpath; do
printf '=> %s\n' "$pkgpath"
while read -r dep mak || [ "$dep" ]; do
printf '%s%s\n' "$dep" "${mak:+ "$mak"}"
done 2>/dev/null < "$pkgpath/depends"
done

View File

@ -1,19 +0,0 @@
#!/bin/sh
# Display packages in all repositories which depend on a package
[ "$1" ] || set -- "${PWD##*/}"
suffix () {
case "$1" in *"$2") return 0; esac; return 1
}
IFS=:
for repo in $KISS_PATH; do
# remove trailing slashes
while suffix "$repo" /; do repo="${repo%/}"; done
gitdir="$(git -C "$repo" rev-parse --show-toplevel 2>/dev/null || echo "$repo")"
case "$gitdir" in "$repo") unset prefix ;; *) prefix="${repo##*/}/" ;; esac
cd "$gitdir/.." || continue
grep -E "^$1([[:space:]]|$)" -- "${gitdir##*/}/$prefix"*/depends 2>/dev/null ||:
done

12
kiss
View File

@ -1971,12 +1971,14 @@ args() {
export KISS_PATH="$sys_db:$KISS_PATH"
esac
# Order the argument list based on dependence.
pkg_order "$@"
case $action in b|build|i|install|r|remove)
# Order the argument list based on dependence.
pkg_order "$@"
# Intentional, globbing disabled.
# shellcheck disable=2046,2086
set -- $order
# Intentional, globbing disabled.
# shellcheck disable=2046,2086
set -- $order
esac
;;
esac