]> git.pld-linux.org Git - packages/rpm-build-tools.git/blame - purge-packages.sh
purge_packages: Add vim modeline
[packages/rpm-build-tools.git] / purge-packages.sh
CommitLineData
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
5set -e
6
7topdir=$(rpm -E %_topdir)
8purgedir=$topdir/purged
9cd "$topdir"
10
11if [ -d "$purgedir" ]; then
12 echo >&2 "Previous pruge dir exists: $purgedir, remove it to resume"
13 exit 1
14fi
15
16install -d $purgedir
17for pkg in */.git; do
18 pkg=${pkg%/.git}
19 cd "$pkg"
7bf3bf31 20 status=$(git status --porcelain)
2bfd8fcc 21 stash=$(git stash list)
053ce154
ER
22
23 # FIXME: does not currently handle if some pushes are not made!
2bfd8fcc 24 if [ -n "$status" ] || [ -n "$stash" ]; then
053ce154 25 cat <<-EOF
2bfd8fcc 26 * Package $pkg - Untracked files or stash not empty. Invoke gc
053ce154
ER
27
28 $status
29 EOF
30 git gc
31 else
32 cat <<-EOF
33 * Package $pkg - State clean. Removing
34 EOF
35 mv ../$pkg $purgedir
36 fi
37 cd ..
38done
a2ade87c
ER
39
40rmdir --ignore-fail-on-non-empty $purgedir
2f3a7f8c
KK
41
42# vi:syntax=sh:ts=4:sw=4:noet
This page took 0.106627 seconds and 4 git commands to generate.