From 30f7d067dbb9e7441f4d871c36338350135ac3b3 Mon Sep 17 00:00:00 2001
From: Per Cederqvist <ceder@lysator.liu.se>
Date: Tue, 19 Dec 2006 19:24:41 +0000
Subject: [PATCH] Get rid of obsolete status files and backups.

* lysrdiff-move-obsolete: New script.  Move backups that are no
  longer mentioned in the task file to a separate place.
---
 ChangeLog              |  6 ++++++
 lysrdiff-move-obsolete | 49 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 55 insertions(+)
 create mode 100755 lysrdiff-move-obsolete

diff --git a/ChangeLog b/ChangeLog
index a9ae794..26541b3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2006-12-19  Per Cederqvist  <ceder@sedesopim.lysator.liu.se>
+
+	Get rid of obsolete status files and backups.
+	* lysrdiff-move-obsolete: New script.  Move backups that are no
+	longer mentioned in the task file to a separate place.
+
 2006-11-29  Per Cederqvist  <ceder@sedesopim.lysator.liu.se>
 
 	Guard against running two fetch-backup-work instances at the same
diff --git a/lysrdiff-move-obsolete b/lysrdiff-move-obsolete
new file mode 100755
index 0000000..364684c
--- /dev/null
+++ b/lysrdiff-move-obsolete
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+shopt -s extglob
+
+for base in /lysrdiff/*/perm/lysrdiff
+do
+  cd $base/backups || continue
+  for cat in *
+  do
+    (
+	cd "$cat" || continue
+	for subcat in *
+	do
+	  fgrep "$cat $subcat " $base/tasks >/dev/null
+	  if [ $? -eq 1 ]
+	  then
+	      echo $base $cat $subcat seems obsolete
+	      ls -l $base/state/"$cat"-"$subcat"-+([a-z]) | sed 's/^/  /'
+	      for otherbase in /lysrdiff/*/perm/lysrdiff
+	      do
+		if [ $base != $otherbase ]
+		then
+		    fgrep "$cat $subcat " $otherbase/tasks >/dev/null
+		    if [ $? -eq 0 ]
+		    then
+			echo '  found in '$otherbase:
+			echo -n '    '
+			ls -l $otherbase/state/"$cat-$subcat-end"
+		    fi
+		fi
+	      done
+	      if [ -d $base/obsolete/backups/"$cat"/"$subcat" ]
+	      then
+		  echo '    ALREADY OBSOLETED!'
+		  continue
+	      fi
+	      echo -n '[CONFIRM]'
+	      read line
+	      mkdir -p $base/obsolete/backups/"$cat"
+	      mkdir -p $base/obsolete/state
+	      mv $base/backups/"$cat"/"$subcat" \
+	         $base/obsolete/backups/"$cat"/"$subcat"
+	      mv $base/state/"$cat"-"$subcat"-+([a-z]) $base/obsolete/state
+	      echo
+	  fi
+	done
+    )
+  done
+done
-- 
GitLab