>>648
#! /usr/bin/env ruby
cmd, fn = ARGV.shift, ARGV.last
if ARGV.empty? or !test(?f, fn)
STDERR.printf("usage: %s command [options] filename\n", $0)
exit!
end
newfn = fn+"."+cmd
r, w = IO::pipe
if fork()
w.close
open(newfn, "w").write(r.read)
r.close
Process.wait
else
r.close
$stdin.close
$stdout = w
exec(cmd, *ARGV)
end
if $? == 0 and ENV["MY_WRAPPER_OVERWRITE"]
File::delete(fn)
File::rename(newfn, fn)
end