]> pd.if.org Git - zpackage/commitdiff
add gc script
authorNathan Wagner <nw@hydaspes.if.org>
Fri, 26 Oct 2018 05:20:25 +0000 (05:20 +0000)
committerNathan Wagner <nw@hydaspes.if.org>
Sat, 3 Nov 2018 12:39:52 +0000 (12:39 +0000)
Makefile
zpm-gc [new file with mode: 0755]
zpm-install

index d3e7622f4b4a8ae5bd6720391341797e9b3689cd..0190c534beb344940bea22ec64b5b4c5fe666bf1 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -33,7 +33,7 @@ ZPKGBIN=zpm-addfile zpm-extract zpm-init zpm-vercmp zpm-stat zpm-hash \
 
 SCRIPTS=zpm zpm-install zpm-merge zpm-list zpm-preserve zpm-test zpm-log \
        zpm-contents zpm-uninstall zpm-pathmod zpm-rmpackage zpm-newpackage \
-       zpm-pkg zpm-add zpm-setscript zpm-pkgfile
+       zpm-pkg zpm-add zpm-setscript zpm-pkgfile zpm-gc
 COMPILED=$(ZPKGBIN)
 PROGRAMS=$(SCRIPTS) $(COMPILED)
 
diff --git a/zpm-gc b/zpm-gc
new file mode 100755 (executable)
index 0000000..f07cdaf
--- /dev/null
+++ b/zpm-gc
@@ -0,0 +1,52 @@
+#!/bin/sh
+
+# garbage collect a package database
+# flags to skip phases
+
+db=${1:-${ZPMDB:-/var/lib/zpm/local.db}}
+
+if [ -z "$db" ]; then
+       echo must specify database file
+       exit 1
+fi
+
+ZPMDB=$db
+export ZPMDB
+
+# check for incorrect hash file content
+
+# remove orphaned elf info
+
+# remove failed packages
+for pkg in $(zpm list -s failed); do
+       zpm log -i -a 'gc removing' -t "$pkg"
+       zpm rmpackage "$pkg"
+done
+
+for pkg in $(zpm list -s dryrun); do
+       zpm log -i -a 'gc removing' -t "$pkg"
+       zpm rmpackage "$pkg"
+done
+
+# remove incomplete packages
+
+# remove outdated packages, unless preserved
+# TODO need 'rstatus' flag
+
+# remove removed packages, unless preserved
+
+# remove orphaned rows in files table
+# references in packagefiles, notes, scripts, possibly others
+
+# remove old logs, given by date
+
+# remove acked notes
+
+# remove install history by date
+
+# remove history for removed packages
+
+# remove command history by date
+
+# compactify the database file
+
index edd84050a5d2eee8f05d08a3b7e89bf17a86f56e..35891694d6409268b760e89f786bc262799bb72f 100755 (executable)
@@ -6,7 +6,7 @@ warn() {
 
 die() {
        echo $* 1>&2
-       zpm log -i -a 'aborting install' -p "$pkgid" "$*"
+       zpm log -i -a 'aborting install' -t "$pkgid" "$*"
        exit 1
 }