On 31 Oct 2007, at 19:49, Simon Gregory wrote:
[...] this isn't quite as elegant as the TM shell script require_cmd (ruby prints the cmd not found error, and it takes a fraction longer for ant to start up). Is there an equivalent I should be using with ruby? If not is there a better way this could be achieved.
We don’t have a Ruby equivalent, but it would go something like this:
exists = ENV['PATH'].split(':').any? { |dir| File.exists? File.join(dir, 'ant') } unless exists puts "Couldn’t find ‘ant’. Locations searches:" puts ENV['PATH'].gsub(/:/, "\n") abort end
Should probably be parameterized so we can later move it to a support library. Should maybe also check that the found file is executable. And would be nice if it also supported TM_ANT.
Speaking of the latter, it is not uncommon that users set e.g. TM_SVN to the *folder* containing svn, not the full path. Either we should allow that, or we should test against it (not directly related to the above, just thinking out loud).