shithub: riscv

ref: 45e2b4dfe9570aefe3e5f2a8b7af956b7365f522
dir: /rc/bin/patch/undo/

View raw version
#!/bin/rc

rfork e
if(! ~ $#* 1){
	echo 'usage: patch/undo patch-name' >[1=2]
	exit usage
}

if(! test -d /n/sources/patch){
	rfork n
	9fs sources
}

if(! test -d /n/sources/patch/$1){
	echo 'no such patch' /n/sources/patch/$1 >[1=2]
	exit nopatch
}

d=$1
builtin cd /n/sources/patch/$1 || exit nopatch
if(! patch/okay .){
	echo 'bad patch: '$status >[1=2]
	exit badpatch
}

fn xxx {
	if(cmp $2.new $1){
		echo cp /n/sources/patch/$d/$2.backup $1
		cp $2.backup $1
	}
	if not
		echo $1 has changed since patch was applied! >[2=1]
}
cat files | sed 's/^/xxx /' |rc