proj/Makefile: Add target purge

Signed-off-by: Jan Lindemann <jan@janware.com>
This commit is contained in:
Jan Lindemann 2016-09-17 07:10:04 +00:00
commit 1f11eedb75
2 changed files with 41 additions and 0 deletions

View file

@ -47,6 +47,7 @@ endif
PGIT = CLONE_PROJECTS="$(PROJECTS)" PGIT_CLONE_FROM_USER="$(JANWARE_USER)" /bin/bash $(firstword $(wildcard ./ytools/devutil/scripts/pgit.sh /opt/ytools/bin/pgit.sh)) PGIT = CLONE_PROJECTS="$(PROJECTS)" PGIT_CLONE_FROM_USER="$(JANWARE_USER)" /bin/bash $(firstword $(wildcard ./ytools/devutil/scripts/pgit.sh /opt/ytools/bin/pgit.sh))
BUILD_PY = python ./ytools/devutil/scripts/build.py -b $(shell pwd) $(BUILD_PY_EXTRA_OPTS) BUILD_PY = python ./ytools/devutil/scripts/build.py -b $(shell pwd) $(BUILD_PY_EXTRA_OPTS)
PURGE_SH = /bin/bash $(firstword $(wildcard ./ytools/devutil/scripts/purge-stale-projects.sh /opt/ytools/bin/purge-stale-projects.sh))
EXCLUDE_FROM_BUILD = \ EXCLUDE_FROM_BUILD = \
dspider-btools \ dspider-btools \
@ -146,3 +147,5 @@ clone.done:
$(PGIT) clone $(PGIT) clone
touch $@ touch $@
purge:
$(PURGE_SH)

View file

@ -0,0 +1,38 @@
#!/bin/bash
local_cvs_proj=`ls -d */CVS 2>/dev/null | sed 's%/[^/]*%%'`
local_git_proj=`ls -d */.git 2>/dev/null | sed 's%/[^/]*%%'`
remote_cvs_proj=`ssh cvs.jannet.de find /home/jannet/arc/cvs/proj -type d -maxdepth 1 -mindepth 1 | sed 's%.*/%%'`
remote_git_proj=`ssh git.jannet.de git-srv-admin.sh -j list-personal-projects`
date=`date +'%Y%m%d'`
for p in $local_cvs_proj; do
[ -L $p ] && continue
[ -d $p ] || continue
echo $remote_cvs_proj | grep -q "\(^\| \)$p\($\| \)" && continue
n=old/cvs/$date/$p
mkdir -p `dirname $n`
echo moving stale cvs project $p to $n
mv $p $n
purged="$purged $p"
done
[ "$purged" ] && {
cp -p CVS/Entries CVS/Entries-$date-`date +'%H%M%S'`
}
for p in $purged; do
sed -i "/D\/$p\/\/\/\// d" CVS/Entries
done
for p in $local_git_proj; do
[ -L $p ] && continue
[ -d $p ] || continue
echo $remote_git_proj | grep -q "\(^\| \)$p\($\| \)" && continue
n=old/git/$date/$p
mkdir -p `dirname $n`
mv $p $n
echo moving state git project $p to $n
done