Also add test for this.
# The following commands are possible; the file extension for the source file
# in brackets.
#
-# - m4 (.m4): pipe $2.m4 through m4 then write it to $2
-# - awk (.in): pipe $2.in through awk then write it to $2
-# - cat ($3): copy $2$3 to $2
+# - m4 (.m4): pipe $2.m4 through m4 then write it to $2
+# - awk (.in): pipe $2.in through awk then write it to $2
+# - perl (.in): pipe $2.in through perl then write it to $2
+# - cat ($3): copy $2$3 to $2
generate() {
# Get command and target file.
command="$1"
# extension.
if [ x"$command" = xm4 ]; then
extension=.m4
- elif [ x"$command" = xawk ]; then
+ elif [ x"$command" = xawk -o x"$command" = xperl ]; then
extension=.in
elif [ x"$command" = xcat ]; then
extension="$1" # is $3 in reality, $1 because of shifting
# Remove the line with the current date as it changes every time.
cat tmp/test-awk | grep -v "It was generated from tmp/test-awk.in"
+# Test generate() using perl.
+echo "Simple test fiel for generate() using perl.
+first second
+" > tmp/test-perl.in
+generate perl tmp/test-perl -p -e 's/first/best/'
+# Remove the line with the current date as it changes every time.
+cat tmp/test-perl | grep -v "It was generated from tmp/test-perl.in"
+
# Test generate() using cat.
echo "Simple test fiel for generate() using cat (simple copy).
Simple
first
+perl: generating 'tmp/test-perl' from 'tmp/test-perl.in' with options '-p -e s/first/best/'
+###################################
+# WARNING! DO NOT EDIT THIS FILE! #
+###################################
+
+
+Simple test fiel for generate() using perl.
+best second
+
cat: generating 'tmp/test-cat' from 'tmp/test-cat.real'
###################################
# WARNING! DO NOT EDIT THIS FILE! #