]> pd.if.org Git - zpackage/blobdiff - zpm-gc
switch to blake2
[zpackage] / zpm-gc
diff --git a/zpm-gc b/zpm-gc
index d2d49fc861c0dd95472395f13be317312f2b1410..fdf8088b8c1abafa3f695b7b3ef30a0f7f23f996 100755 (executable)
--- a/zpm-gc
+++ b/zpm-gc
@@ -77,17 +77,30 @@ export ZPMDB
 
 # check for incorrect hash file content
 
-# remove orphaned elf info
+# removes old packages
+zpm shell local.db.rehash "select package||'-'||version||'-'||release  from package_age where age > 2 and status = 'updated'"|xargs -n1 zpm rmpackage -S installed -f local.db.rehash
+
+select
+EL.file, PF.path,
+PF.package || '-' || PF.version || '-' || PF.release as pkgid
+from elfneeded EL
+left join files F on F.hash = EL.file
+left join packagefiles PF on PF.hash = EL.file
+where F.hash is null
+and EL.file is not null
+and PF.path is not null
+;
+
 
 # remove failed packages
 for pkg in $(zpm list -s failed); do
        zpm rmpackage -m 'gc removed failed' "$pkg"
-       echo removed $pkg
+       echo removed failed $pkg
 done
 
 for pkg in $(zpm list -s dryrun); do
        zpm rmpackage -m 'gc removed dryrun' "$pkg"
-       echo removed $pkg
+       echo removed dryrun $pkg
 done
 
 # remove incomplete packages
@@ -95,7 +108,7 @@ done
 if [ $remove_incomplete_packages -ne 0 ]; then
        for pkg in $(zpm list -F 'hash is null'); do
                zpm rmpackage -m 'gc removed incomplete' $pkg
-       echo removed $pkg
+       echo removed incomplete $pkg
        done
 fi
 
@@ -104,7 +117,7 @@ fi
 if [ $remove_old_packages -ne 0 ]; then
        zpm shell $ZPMDB "select printf('%s-%s-%s',package,version,release) from package_age where age > $retain_old" | while read pkg; do
        zpm rmpackage -m 'gc removed old package' $pkg
-       echo removed $pkg
+       echo removed old package $pkg
 done
 fi