kiss-orphans: Performance improvements.

Closes #275
This commit is contained in:
Dylan Araps 2021-09-26 15:00:38 +03:00
parent eed63b0d81
commit 993f4ee9b1
No known key found for this signature in database
GPG Key ID: 13295DAC2CF13B5C

View File

@ -1,16 +1,41 @@
#!/bin/sh -e #!/bin/sh -e
# List orphaned packages # List orphaned packages
cd "$KISS_ROOT/var/db/kiss/installed/" n='
'
for pkg in *; do cd "$KISS_ROOT/var/db/kiss/installed"
case $pkg in set -- *
# Exemptions for orphans which aren't really
# orphans. Exclude them from the list. l=$n$(
baseinit|baselayout|gcc|e2fsprogs|musl|\ for pkg do shift
make|busybox|bzip2|grub|kiss|git) set -- "$@" -e "$pkg"
continue done
# Get a list of non-orphans.
grep -Fx "$@" -- */depends |
{
# Strip filename.
sed s,.\*/depends:,,
# Exclude packages which are not really orphans.
printf '%s\n' baseinit baselayout busybox bzip2 e2fsprogs gcc \
git grub kiss make musl
} |
# Remove duplicates.
sort -u
)$n
# Generate the list of orphans by finding the inverse of the non-orphan list.
for pkg do shift
case $l in (*"$n$pkg$n"*)
continue
esac esac
grep -q "^$pkg$" ./*/depends || printf '%s\n' "$pkg" set -- "$@" "$pkg"
done done
printf '%s\n' "$@"