diff --git a/make/projects-dir.mk b/make/projects-dir.mk index 49fe6e43..7b9189f9 100644 --- a/make/projects-dir.mk +++ b/make/projects-dir.mk @@ -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)) 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 = \ dspider-btools \ @@ -146,3 +147,5 @@ clone.done: $(PGIT) clone touch $@ +purge: + $(PURGE_SH) diff --git a/scripts/purge-stale-projects.sh b/scripts/purge-stale-projects.sh new file mode 100644 index 00000000..29446f48 --- /dev/null +++ b/scripts/purge-stale-projects.sh @@ -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 +