On Fri, Sep 10, 2010 at 07:11:18AM +0100, David Cantrell wrote: > Sometimes you need to check whether a binary is a GNU or a normal > version. For example, GNU tar has the -z option, and GNU cp has the -l > option, and GNU make is Just Plan Weird. Any suggestions for how to > name a module that would check this? > > It would be a very simple wrapper around: > > `$binary --version` =~ /(gnu|free software foundation)/i > > I'm thinking something like ExtUtils::CheckForGNUbinary.
Scrap that. It should be more along the lines of checking for capabilities rather than merely for GNU-ness, with GNU-ness being just one of many capabilities. For example, GNU tar may *or may not* support the -j flag, depending on whether bzip2 support is available. Even so, I still need a good suggestion for a name :-) The interface will be fairly similar to that for Devel::{Check|Assert}OS, so Devel::CheckBinary might be a good choice. Then, to check that /bin/tar supports the -j flag and that /bin/cp is GNU cp, you might do something like ... use Insert::Name::Here, '/bin/tar' => 'TarMinusJ'; use Insert::Name::Here, '/bin/cp' => 'GNU'; -- David Cantrell | Official London Perl Mongers Bad Influence Us Germans take our humour very seriously -- German cultural attache talking to the Today Programme, about the German supposed lack of a sense of humour, 29 Aug 2001