[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

pkg-kde: commit - rev 193 - people/dato/kde-common



Author: dato-guest
Date: 2004-11-05 19:06:42 -0700 (Fri, 05 Nov 2004)
New Revision: 193

Modified:
   people/dato/kde-common/patches.sh
Log:
Add per-patch stamp-file. Otherwise, it sucks when you make a mistake.


Modified: people/dato/kde-common/patches.sh
===================================================================
--- people/dato/kde-common/patches.sh	2004-11-05 23:53:16 UTC (rev 192)
+++ people/dato/kde-common/patches.sh	2004-11-06 02:06:42 UTC (rev 193)
@@ -1,5 +1,6 @@
 #! /bin/sh
 # Very simple patching system with uu-encoded patches support
+# Added per-patch stamp on 2004-11-06.
 # $Id$
 
 set -e
@@ -19,37 +20,37 @@
 	# List of patches
 	patches=$(find $patchesdirs -name '*.diff' | sort)
 
-	# Apply
-	if test ! -f patch-stamp; then
-	    for patch in $patches; do
+	# Apply if stamp does not exist
+	for patch in $patches; do
+	    if test ! -f $patch-stamp; then
 		echo "APPLYING PATCH: ${patch##*/}"
 		patch -p1 < "$patch"
-	    done
+		touch $patch-stamp 
+	    else
+		echo "ALREADY APPLIED: ${patch##*/}"
+	    fi
+	done
 
-	    touch patch-stamp
-	fi
-
   ;;
 
   unapply)
-  	# List of patches
-	patches=$(find $patchesdirs -name '*.diff' | sort -r)
+  	# List of applied patches == list of stamps
+	stamps=$(find $patchesdirs -name '*.diff-stamp' | sort -r)
 
 	# Unapply
-	if test -f patch-stamp; then
-	    for patch in $patches; do
-		echo "REMOVING PATCH: ${patch##*/}"
-		patch -p1 -R < "$patch"
-	    done
+	for stamp in $stamps; do
+	    echo "REMOVING PATCH: ${patch##*/}"
+	    patch=`dirname $stamp`/`basename $stamp -stamp`
+	    patch -p1 -R < "$patch"
+	    rm -f $stamp
+	done
 
 	# Remove decoded patches
 	for uu in $(find $patchesdirs -name '*.uu'); do
 	    rm -f "${uu%%.uu}"
 	done
-
-	# Remove stamp
-	rm -f patch-stamp
-    fi
   ;;
 
 esac
+
+# vim: sw=4



Reply to: