]> git.pld-linux.org Git - packages/rpm-build-tools.git/commitdiff
add a tool to cleanup your packages dir
authorElan Ruusamäe <glen@delfi.ee>
Sat, 3 Nov 2012 09:15:57 +0000 (11:15 +0200)
committerElan Ruusamäe <glen@delfi.ee>
Sat, 3 Nov 2012 09:15:57 +0000 (11:15 +0200)
purge-packages.sh [new file with mode: 0755]

diff --git a/purge-packages.sh b/purge-packages.sh
new file mode 100755 (executable)
index 0000000..b8ca00c
--- /dev/null
@@ -0,0 +1,37 @@
+#!/bin/sh
+# Purges packages/ checkouts
+# - if package has clean state, the dir is removed
+# - otherwise git gc is called
+set -e
+
+topdir=$(rpm -E %_topdir)
+purgedir=$topdir/purged
+cd "$topdir"
+
+if [ -d "$purgedir" ]; then
+       echo >&2 "Previous pruge dir exists: $purgedir, remove it to resume"
+       exit 1
+fi
+
+install -d $purgedir
+for pkg in */.git; do
+       pkg=${pkg%/.git}
+       cd "$pkg"
+       status=$(git status -s)
+
+       # FIXME: does not currently handle if some pushes are not made!
+       if [ -n "$status" ]; then
+               cat <<-EOF
+               * Package $pkg - Untracked files. Invoke gc
+
+               $status
+               EOF
+               git gc
+       else
+               cat <<-EOF
+               * Package $pkg - State clean. Removing
+               EOF
+               mv ../$pkg $purgedir
+       fi
+       cd ..
+done
This page took 0.42777 seconds and 4 git commands to generate.