diff --git a/Library/Homebrew/cmd/command.rb b/Library/Homebrew/cmd/command.rb index 66a6d38e1a..6ddd898be3 100644 --- a/Library/Homebrew/cmd/command.rb +++ b/Library/Homebrew/cmd/command.rb @@ -3,7 +3,9 @@ module Homebrew cmd = ARGV.first cmd = HOMEBREW_INTERNAL_COMMAND_ALIASES.fetch(cmd, cmd) - if (path = HOMEBREW_LIBRARY_PATH/"cmd/#{cmd}.rb") && path.file? + if (path = HOMEBREW_LIBRARY_PATH/"cmd/#{cmd}.rb").file? + puts path + elsif ARGV.homebrew_developer? && (path = HOMEBREW_LIBRARY_PATH/"dev-cmd/#{cmd}.rb").file? puts path elsif (path = which("brew-#{cmd}") || which("brew-#{cmd}.rb")) puts path diff --git a/Library/Homebrew/cmd/commands.rb b/Library/Homebrew/cmd/commands.rb index 2bb18b3e09..b94ecca7dd 100644 --- a/Library/Homebrew/cmd/commands.rb +++ b/Library/Homebrew/cmd/commands.rb @@ -20,9 +20,11 @@ module Homebrew def internal_commands with_directory = false - (HOMEBREW_REPOSITORY/"Library/Homebrew/cmd"). - children(with_directory). - map { |f| File.basename(f, ".rb") } + cmds = (HOMEBREW_LIBRARY_PATH/"cmd").children(with_directory).map { |f| File.basename(f, ".rb") } + if ARGV.homebrew_developer? + cmds += (HOMEBREW_LIBRARY_PATH/"dev-cmd").children(with_directory).map { |f| File.basename(f, ".rb") } + end + cmds end def external_commands diff --git a/Library/Homebrew/cmd/update-test.rb b/Library/Homebrew/dev-cmd/update-test.rb similarity index 100% rename from Library/Homebrew/cmd/update-test.rb rename to Library/Homebrew/dev-cmd/update-test.rb diff --git a/Library/brew.rb b/Library/brew.rb index 5b2af88a90..886b079104 100755 --- a/Library/brew.rb +++ b/Library/brew.rb @@ -106,7 +106,13 @@ begin # Add SCM wrappers. ENV["PATH"] += "#{File::PATH_SEPARATOR}#{HOMEBREW_LIBRARY}/ENV/scm" - internal_cmd = require? HOMEBREW_LIBRARY_PATH.join("cmd", cmd) if cmd + if cmd + internal_cmd = require? HOMEBREW_LIBRARY_PATH.join("cmd", cmd) + + if !internal_cmd && ARGV.homebrew_developer? + internal_cmd = require? HOMEBREW_LIBRARY_PATH.join("dev-cmd", cmd) + end + end # Usage instructions should be displayed if and only if one of: # - a help flag is passed AND an internal command is matched