diff options
| author | Adam Vandenberg | 2013-09-14 16:58:26 -0700 | 
|---|---|---|
| committer | Adam Vandenberg | 2013-09-17 06:44:25 -0700 | 
| commit | 5b77eaf15f1276bbafdea8081acd6e4905ca30d1 (patch) | |
| tree | 74eca6c739f58ce1d5660f9d29f7ef184b7bc64a | |
| parent | 4c2cee38dfe682c7375facc5bcf0e28c467e47df (diff) | |
| download | homebrew-5b77eaf15f1276bbafdea8081acd6e4905ca30d1.tar.bz2 | |
brew commands
Shows a list of built-in commands (but not shortcuts) and searches
for any external commands on the path.
Closes #22509.
| -rw-r--r-- | Library/Contributions/brew_bash_completion.sh | 1 | ||||
| -rw-r--r-- | Library/Contributions/brew_zsh_completion.zsh | 1 | ||||
| -rw-r--r-- | Library/Contributions/manpages/brew.1.md | 3 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/commands.rb | 33 | ||||
| -rw-r--r-- | share/man/man1/brew.1 | 4 | 
5 files changed, 42 insertions, 0 deletions
| diff --git a/Library/Contributions/brew_bash_completion.sh b/Library/Contributions/brew_bash_completion.sh index 28a57c6c5..c55b78925 100644 --- a/Library/Contributions/brew_bash_completion.sh +++ b/Library/Contributions/brew_bash_completion.sh @@ -403,6 +403,7 @@ _brew ()              audit              cat              cleanup +            commands              create              deps              diy configure diff --git a/Library/Contributions/brew_zsh_completion.zsh b/Library/Contributions/brew_zsh_completion.zsh index e497cd11e..878a3f9d3 100644 --- a/Library/Contributions/brew_zsh_completion.zsh +++ b/Library/Contributions/brew_zsh_completion.zsh @@ -27,6 +27,7 @@ _1st_arguments=(    'audit:check formulae for Homebrew coding style'    'cat:display formula file for a formula'    'cleanup:uninstall unused and old versions of packages' +  'commands:show a list of commands'    'create:create a new formula'    'deps:list dependencies and dependants of a formula'    'doctor:audits your installation for common issues' diff --git a/Library/Contributions/manpages/brew.1.md b/Library/Contributions/manpages/brew.1.md index 0e3c11584..e2b94821e 100644 --- a/Library/Contributions/manpages/brew.1.md +++ b/Library/Contributions/manpages/brew.1.md @@ -64,6 +64,9 @@ Note that these flags should only appear after a command.      versions of formula. Note downloads for any installed formula will still not be      deleted. If you want to delete those too: `rm -rf $(brew --cache)` +  * `commands`: +    Show a list of built-in and external commands. +    * `create <URL> [--autotools|--cmake] [--no-fetch] [--set-name <name>] [--set-version <version>]`:      Generate a formula for the downloadable file at <URL> and open it in the editor.      Homebrew will attempt to automatically derive the formula name diff --git a/Library/Homebrew/cmd/commands.rb b/Library/Homebrew/cmd/commands.rb new file mode 100644 index 000000000..b9bbb12ec --- /dev/null +++ b/Library/Homebrew/cmd/commands.rb @@ -0,0 +1,33 @@ +module Homebrew extend self +  def paths +    @paths ||= ENV['PATH'].split(File::PATH_SEPARATOR).collect do |p| +      begin +        File.expand_path(p).chomp('/') +      rescue ArgumentError +        onoe "The following PATH component is invalid: #{p}" +      end +    end.uniq.compact +  end + +  def commands +    # Find commands in Homebrew/cmd +    cmds = (HOMEBREW_REPOSITORY/"Library/Homebrew/cmd"). +           children(with_directory=false). +           map {|f| File.basename(f, '.rb')} +    puts "Built-in commands" +    puts_columns cmds + +    # Find commands in the path +    exts =  paths.map{ |p| Dir["#{p}/*"] }.flatten. +            map{    |f| File.basename f }. +            select{ |f| f =~ /^brew-(.+)/ }. +            map{    |f| File.basename(f, '.rb')[5..-1] }. +            reject{ |f| f =~ /\./ } + +    unless exts.empty? +      puts +      puts "External commands" +      puts_columns exts +    end +  end +end diff --git a/share/man/man1/brew.1 b/share/man/man1/brew.1 index 94d8473b6..1f81c74c7 100644 --- a/share/man/man1/brew.1 +++ b/share/man/man1/brew.1 @@ -71,6 +71,10 @@ If \fB\-n\fR is passed, show what would be removed, but do not actually remove a  If \fB\-s\fR is passed, scrubs the cache, removing downloads for even the latest versions of formula\. Note downloads for any installed formula will still not be deleted\. If you want to delete those too: \fBrm \-rf $(brew \-\-cache)\fR  .  .TP +\fBcommands\fR +Show a list of built\-in and external commands\. +. +.TP  \fBcreate <URL> [\-\-autotools|\-\-cmake] [\-\-no\-fetch] [\-\-set\-name <name>] [\-\-set\-version <version>]\fR  Generate a formula for the downloadable file at \fIURL\fR and open it in the editor\. Homebrew will attempt to automatically derive the formula name and version, but if it fails, you\'ll have to make your own template\. The wget formula serves as a simple example\. For a complete cheat\-sheet, have a look at  . | 
