]>
Commit | Line | Data |
---|---|---|
053ce154 ER |
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" | |
7bf3bf31 | 20 | status=$(git status --porcelain) |
053ce154 ER |
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 | |
a2ade87c ER |
38 | |
39 | rmdir --ignore-fail-on-non-empty $purgedir |