#!/bin/sh # # edit-patch 0.2 # # http://termos.vemod.net/edit-patch # # Released into the public domain # # Please send bug reports and improvements to # christoffer.sawicki@gmail.com patch_original=`mktemp -t edit-patch` patch_modified=`mktemp -t edit-patch` echo "Reading patch..." if [ -z "$EDITOR" ]; then EDITOR=vi fi cat > "$patch_original" if [ -s "$patch_original" ]; then cp "$patch_original" "$patch_modified" $EDITOR "$patch_modified" < /dev/tty if [ "$(cat $patch_original)" != "$(cat $patch_modified)" ]; then patch -u -R < "$patch_original" | sed s/^patch/unpatch/ patch -u < "$patch_modified" # TODO: Is this error handling sufficient? if [ $? -ne 0 ]; then echo "Whoops! Your modified patch was rejected." echo "Restoring..." patch -u < "$patch_original" echo "Saving patch as rejected.patch..." cp "$patch_modified" rejected.patch else echo "OK, done!" fi else echo "No changes were made to the patch." fi else echo "No changes to edit." fi rm "$patch_original" "$patch_modified"