xref: /freebsd/bin/ed/test/mkscripts.sh (revision d0b2dbfa0ecf2bbc9709efc5e20baf8e4b44bbbf)
130154ac8SAndrew Moore#!/bin/sh -
230154ac8SAndrew Moore# This script generates ed test scripts (.ed) from .t files
3148531efSWolfram Schneider#
430154ac8SAndrew Moore
530154ac8SAndrew MoorePATH="/bin:/usr/bin:/usr/local/bin/:."
630154ac8SAndrew MooreED=$1
730154ac8SAndrew Moore[ ! -x $ED ] && { echo "$ED: cannot execute"; exit 1; }
830154ac8SAndrew Moore
930154ac8SAndrew Moorefor i in *.t; do
1030154ac8SAndrew Moore#	base=${i%.*}
1130154ac8SAndrew Moore#	base=`echo $i | sed 's/\..*//'`
1295e6217eSAndrew Moore#	base=`expr $i : '\([^.]*\)'`
1395e6217eSAndrew Moore#	(
1495e6217eSAndrew Moore#	echo "#!/bin/sh -"
1595e6217eSAndrew Moore#	echo "$ED - <<\EOT"
1695e6217eSAndrew Moore#	echo "r $base.d"
1795e6217eSAndrew Moore#	cat $i
1895e6217eSAndrew Moore#	echo "w $base.o"
1995e6217eSAndrew Moore#	echo EOT
2095e6217eSAndrew Moore#	) >$base.ed
2195e6217eSAndrew Moore#	chmod +x $base.ed
2295e6217eSAndrew Moore# The following is pretty ugly way of doing the above, and not appropriate
2395e6217eSAndrew Moore# use of ed  but the point is that it can be done...
2495e6217eSAndrew Moore	base=`$ED - \!"echo $i" <<-EOF
2595e6217eSAndrew Moore		s/\..*
2695e6217eSAndrew Moore	EOF`
2795e6217eSAndrew Moore	$ED - <<-EOF
2895e6217eSAndrew Moore		a
2995e6217eSAndrew Moore		#!/bin/sh -
3095e6217eSAndrew Moore		$ED - <<\EOT
3195e6217eSAndrew Moore		H
3295e6217eSAndrew Moore		r $base.d
3395e6217eSAndrew Moore		w $base.o
3495e6217eSAndrew Moore		EOT
3595e6217eSAndrew Moore		.
3695e6217eSAndrew Moore		-2r $i
3795e6217eSAndrew Moore		w $base.ed
3895e6217eSAndrew Moore		!chmod +x $base.ed
3995e6217eSAndrew Moore	EOF
4030154ac8SAndrew Mooredone
4130154ac8SAndrew Moore
4230154ac8SAndrew Moorefor i in *.err; do
4330154ac8SAndrew Moore#	base=${i%.*}
4430154ac8SAndrew Moore#	base=`echo $i | sed 's/\..*//'`
4595e6217eSAndrew Moore#	base=`expr $i : '\([^.]*\)'`
4695e6217eSAndrew Moore#	(
4795e6217eSAndrew Moore#	echo "#!/bin/sh -"
4895e6217eSAndrew Moore#	echo "$ED - <<\EOT"
4995e6217eSAndrew Moore#	echo H
5095e6217eSAndrew Moore#	echo "r $base.err"
5195e6217eSAndrew Moore#	cat $i
5295e6217eSAndrew Moore#	echo "w $base.o"
5395e6217eSAndrew Moore#	echo EOT
5495e6217eSAndrew Moore#	) >$base-err.ed
5595e6217eSAndrew Moore#	chmod +x $base-err.ed
5695e6217eSAndrew Moore# The following is pretty ugly way of doing the above, and not appropriate
5795e6217eSAndrew Moore# use of ed  but the point is that it can be done...
5895e6217eSAndrew Moore	base=`$ED - \!"echo $i" <<-EOF
5995e6217eSAndrew Moore		s/\..*
6095e6217eSAndrew Moore	EOF`
6195e6217eSAndrew Moore	$ED - <<-EOF
6295e6217eSAndrew Moore		a
6395e6217eSAndrew Moore		#!/bin/sh -
6495e6217eSAndrew Moore		$ED - <<\EOT
6595e6217eSAndrew Moore		H
6695e6217eSAndrew Moore		r $base.err
6795e6217eSAndrew Moore		w $base.o
6895e6217eSAndrew Moore		EOT
6995e6217eSAndrew Moore		.
7095e6217eSAndrew Moore		-2r $i
7195e6217eSAndrew Moore		w ${base}.red
7295e6217eSAndrew Moore		!chmod +x ${base}.red
7395e6217eSAndrew Moore	EOF
7430154ac8SAndrew Mooredone
75