#!/bin/sh
parse() {
	while read index name w rest; do
		case $index in
			source)	parse $w <$name; continue;;
			-)	patchname=$1$name;;
			\#)	continue;;
			*)	patchname=$1$index-$name-$base;;
		esac
		echo $patchname
		cp -rl $base{$prev,-$name}
		(cd $base-$name && patch -p1 -E) <$patchname
		prev=-$name
	done
}

base=$1
if [ $# == 2 ]; then parse "" <$2; else parse ""; fi
