I’ve written a svn-hook for text files. The content test looks like this:
svnlook cat -t $txn $repos $file 2>/dev/null | file - | egrep -q 'text$'
and I was wondering if this could be done with Perl. However something like this doesn’t work:
svnlook cat -t $txn $repos $file 2>/dev/null | perl -wnl -e '-T' -
I’m testing the exit status of this invocation ($?) to see if the given file was text or binary. Since I’m getting the content out of svn. I can’t use perl’s normal file check.
I’ve done a simulation with the file program and perl with a text and binary file (text.txt, icon.png):
find -type f | xargs -i /bin/bash -c ‘if $(cat {} | file – | egrep -q “text$”); then echo “{}: text”; else echo “{}: binary”; fi’
./text.txt: text
./icons.png: binary
find -type f | xargs -i /bin/bash -c ‘if $(cat {} | perl -wln -e “-T;”); then echo “{}: text”; else echo “{}: binary”; fi’
./text.txt: text
./icons.png: text
You’re testing
perl‘s exit code, but you never set it. You need