diff options
| author | Adam Vandenberg | 2010-06-07 10:40:21 -0700 |
|---|---|---|
| committer | Adam Vandenberg | 2010-06-07 21:43:08 -0700 |
| commit | fafcaaef99f47f6fd70a54939aab3261bb59d34f (patch) | |
| tree | b22efd30751d81d2eeb4257761b93b29746cbe82 | |
| parent | 4b0467f1290f99e012cc3f2fcb29513c9ffc78c7 (diff) | |
| download | homebrew-fafcaaef99f47f6fd70a54939aab3261bb59d34f.tar.bz2 | |
Support external commands
Homebrew will now look for external commands that are +x on PATH, named
as "brew-<cmd>" or "brew-<cmd>.rb"
* Shell scripts are exec'd with some HOMEBREW variables set in the ENV.
* Ruby scripts are require'd directly.
See: http://wiki.github.com/mxcl/homebrew/external-commands
| -rwxr-xr-x | bin/brew | 17 |
1 files changed, 17 insertions, 0 deletions
@@ -377,6 +377,23 @@ begin brew_doctor else + # Check for an external shell command + if system "/usr/bin/which -s brew-#{arg}" + # Add some Homebrew vars to the ENV + ['CACHE', 'CELLAR', 'LIBRARY_PATH', 'PREFIX', 'REPOSITORY'].each do |e| + ENV["HOMEBREW_#{e}"] = eval("HOMEBREW_#{e}") + end + exec("brew-#{arg}", *ARGV) + end + + # Check for an external ruby command + external_rb = `/usr/bin/which brew-#{arg}.rb`.chomp + unless external_rb.empty? + require external_rb + exit 0 + end + + # Check for git commands if ['branch', 'checkout', 'pull', 'push', 'rebase', 'reset'].include? arg onoe "Unknown command: #{arg} (did you mean 'git #{arg}'?)" else |
