]> git.pld-linux.org Git - packages/rpm-build-tools.git/blob - purge-packages.sh
purge-packages: use git status --porcelain instead of --short
[packages/rpm-build-tools.git] / purge-packages.sh
1 #!/bin/sh
2 # Purges packages/ checkouts
3 # - if package has clean state, the dir is removed
4 # - otherwise git gc is called
5 set -e
6
7 topdir=$(rpm -E %_topdir)
8 purgedir=$topdir/purged
9 cd "$topdir"
10
11 if [ -d "$purgedir" ]; then
12         echo >&2 "Previous pruge dir exists: $purgedir, remove it to resume"
13         exit 1
14 fi
15
16 install -d $purgedir
17 for pkg in */.git; do
18         pkg=${pkg%/.git}
19         cd "$pkg"
20         status=$(git status --porcelain)
21
22         # FIXME: does not currently handle if some pushes are not made!
23         if [ -n "$status" ]; then
24                 cat <<-EOF
25                 * Package $pkg - Untracked files. Invoke gc
26
27                 $status
28                 EOF
29                 git gc
30         else
31                 cat <<-EOF
32                 * Package $pkg - State clean. Removing
33                 EOF
34                 mv ../$pkg $purgedir
35         fi
36         cd ..
37 done
This page took 0.031548 seconds and 4 git commands to generate.