#!/bin/sh # conv -- convert git diff -p output to pkgsrc patch IFS=' ' { echo '$NetBSD' echo # get patch description if [ x"$1" = x"-i" ]; then f=`mktemp` echo 'Edit patch description...' > $f /dev/tty vi $f c=`cat $f` if [ x"$c" != x"Edit patch description..." ]; then printf '%s\n\n' "$c" fi rm $f fi sed ' /^diff/d; /^index/d; s/^--- .*/&/; ' } | while read line; do case "$line" in diff*) ;; index*) ;; '--- a/'*) file=${line#--- a/} echo -n "--- $file.orig " echo "$(stat -x "$file")" | sed -n 's/^Access: //p' ;; '+++ b/'*) echo "+++ ${line#+++ b/}" ;; *) echo "$line" ;; esac done | { if [ x"$1" = x"-i" ]; then # read patch before proceeding patch=`cat` # get patch directory dir=$2 if [ -z "$2" ]; then echo -n 'Package name: ' >/dev/tty read dir /dev/tty read name &2 exit 1 else printf '%s\n' "$patch" > $dir/$name echo $dir/$name 1>&2 fi else cat fi }