forked from kiss-community/kiss
kiss: fix quadratic behaviour (#91)
Not really necessary considering it occurs only when files are actually invalid Example with manually broken linux package: ``` λ time ./kiss i linux > /dev/null -> linux Checking if manifest valid ERROR linux manifest contains 16997 non-existent files Command exited with non-zero status 1 real 0m 0.57s user 0m 0.15s sys 0m 0.42s ``` ``` λ time kiss i linux > /dev/null -> linux Checking if manifest valid ERROR linux manifest contains 16997 non-existent files Command exited with non-zero status 1 real 1m 10.04s user 1m 7.94s sys 0m 2.08s ``` Co-authored-by: git-bruh <e817509a-8ee9-4332-b0ad-3a6bdf9ab63f@aleeas.com> Reviewed-on: https://codeberg.org/kiss-community/kiss/pulls/91
This commit is contained in:
parent
9c72484a62
commit
74f78a8529
9
kiss
9
kiss
@ -898,16 +898,17 @@ pkg_manifest_validate() {
|
|||||||
# NOTE: _pkg comes from caller.
|
# NOTE: _pkg comes from caller.
|
||||||
log "$_pkg" "Checking if manifest valid"
|
log "$_pkg" "Checking if manifest valid"
|
||||||
|
|
||||||
|
cnt=0
|
||||||
|
|
||||||
while read -r line; do
|
while read -r line; do
|
||||||
[ -e "$tar_dir/$_pkg$line" ] || [ -h "$tar_dir/$_pkg$line" ] || {
|
[ -e "$tar_dir/$_pkg$line" ] || [ -h "$tar_dir/$_pkg$line" ] || {
|
||||||
printf '%s\n' "$line"
|
printf '%s\n' "$line"
|
||||||
set -- "$@" "$line"
|
: $((cnt += 1))
|
||||||
}
|
}
|
||||||
done < "$pkg_db/$_pkg/manifest"
|
done < "$pkg_db/$_pkg/manifest"
|
||||||
|
|
||||||
for f do
|
equ "$cnt" 0 ||
|
||||||
die "$_pkg" "manifest contains $# non-existent files"
|
die "$_pkg" "manifest contains $cnt non-existent files"
|
||||||
done
|
|
||||||
}
|
}
|
||||||
|
|
||||||
pkg_manifest_replace() {
|
pkg_manifest_replace() {
|
||||||
|
Loading…
Reference in New Issue
Block a user