diff options
| author | Mike McQuaid | 2016-09-05 21:37:02 +0100 |
|---|---|---|
| committer | Mike McQuaid | 2016-09-08 20:46:37 +0100 |
| commit | af8605ea4ba1d9856c055c8c76b447e030540e3f (patch) | |
| tree | d093b11340406c21a4b873a80effe3b068fd07d4 /Library/Homebrew/dev-cmd/edit.rb | |
| parent | 4f6bae46f9c0f7b713cdbb999318460135f423de (diff) | |
| download | brew-af8605ea4ba1d9856c055c8c76b447e030540e3f.tar.bz2 | |
Move developer-focused commands to dev-cmd.
Diffstat (limited to 'Library/Homebrew/dev-cmd/edit.rb')
| -rw-r--r-- | Library/Homebrew/dev-cmd/edit.rb | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/Library/Homebrew/dev-cmd/edit.rb b/Library/Homebrew/dev-cmd/edit.rb new file mode 100644 index 000000000..ef325b8b6 --- /dev/null +++ b/Library/Homebrew/dev-cmd/edit.rb @@ -0,0 +1,50 @@ +#: * `edit`: +#: Open all of Homebrew for editing. +#: +#: * `edit` <formula>: +#: Open <formula> in the editor. + +require "formula" + +module Homebrew + def edit + unless (HOMEBREW_REPOSITORY/".git").directory? + raise <<-EOS.undent + Changes will be lost! + The first time you `brew update', all local changes will be lost, you should + thus `brew update' before you `brew edit'! + EOS + end + + # If no brews are listed, open the project root in an editor. + if ARGV.named.empty? + editor = File.basename which_editor + if editor == "mate" || editor == "subl" + # If the user is using TextMate or Sublime Text, + # give a nice project view instead. + exec_editor HOMEBREW_REPOSITORY+"bin/brew", + HOMEBREW_REPOSITORY+"README.md", + HOMEBREW_REPOSITORY+".gitignore", + *library_folders + else + exec_editor HOMEBREW_REPOSITORY + end + else + # Don't use ARGV.formulae as that will throw if the file doesn't parse + paths = ARGV.named.map do |name| + path = Formulary.path(name) + unless path.file? || ARGV.force? + raise FormulaUnavailableError, name + end + path + end + exec_editor(*paths) + end + end + + def library_folders + Dir["#{HOMEBREW_LIBRARY}/*"].reject do |d| + case File.basename(d) when "LinkedKegs", "Aliases" then true end + end + end +end |
