diff options
Diffstat (limited to 'Library/Homebrew/cmd')
| -rw-r--r-- | Library/Homebrew/cmd/pin.rb | 3 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/uninstall.rb | 10 | ||||
| -rw-r--r-- | Library/Homebrew/cmd/upgrade.rb | 22 | 
3 files changed, 15 insertions, 20 deletions
| diff --git a/Library/Homebrew/cmd/pin.rb b/Library/Homebrew/cmd/pin.rb index 5a14f853c..9935d1636 100644 --- a/Library/Homebrew/cmd/pin.rb +++ b/Library/Homebrew/cmd/pin.rb @@ -1,7 +1,6 @@  #:  * `pin` <formulae>:  #:    Pin the specified <formulae>, preventing them from being upgraded when -#:    issuing the `brew upgrade <formulae>` command (but can still be upgraded -#:    as dependencies for other formulae). See also `unpin`. +#:    issuing the `brew upgrade <formulae>` command. See also `unpin`.  require "formula" diff --git a/Library/Homebrew/cmd/uninstall.rb b/Library/Homebrew/cmd/uninstall.rb index f95b6c7bb..af0efaf62 100644 --- a/Library/Homebrew/cmd/uninstall.rb +++ b/Library/Homebrew/cmd/uninstall.rb @@ -46,6 +46,16 @@ module Homebrew          rm_pin rack        else          kegs.each do |keg| +          begin +            f = Formulary.from_rack(rack) +            if f.pinned? +              onoe "#{f.full_name} is pinned. You must unpin it to uninstall." +              next +            end +          rescue +            nil +          end +            keg.lock do              puts "Uninstalling #{keg}... (#{keg.abv})"              keg.unlink diff --git a/Library/Homebrew/cmd/upgrade.rb b/Library/Homebrew/cmd/upgrade.rb index 7832983e3..401a02e67 100644 --- a/Library/Homebrew/cmd/upgrade.rb +++ b/Library/Homebrew/cmd/upgrade.rb @@ -50,11 +50,8 @@ module Homebrew        exit 1 if outdated.empty?      end -    unless upgrade_pinned? -      pinned = outdated.select(&:pinned?) -      outdated -= pinned -    end - +    pinned = outdated.select(&:pinned?) +    outdated -= pinned      formulae_to_install = outdated.map(&:latest_formula)      if formulae_to_install.empty? @@ -64,8 +61,8 @@ module Homebrew        puts formulae_to_install.map { |f| "#{f.full_specified_name} #{f.pkg_version}" } * ", "      end -    unless upgrade_pinned? || pinned.empty? -      oh1 "Not upgrading #{Formatter.pluralize(pinned.length, "pinned package")}:" +    unless pinned.empty? +      onoe "Not upgrading #{Formatter.pluralize(pinned.length, "pinned package")}:"        puts pinned.map { |f| "#{f.full_specified_name} #{f.pkg_version}" } * ", "      end @@ -95,10 +92,6 @@ module Homebrew      end    end -  def upgrade_pinned? -    !ARGV.named.empty? -  end -    def upgrade_formula(f)      if f.opt_prefix.directory?        keg = Keg.new(f.opt_prefix.resolved_path) @@ -143,13 +136,6 @@ module Homebrew      fi.install      fi.finish - -    # If the formula was pinned, and we were force-upgrading it, unpin and -    # pin it again to get a symlink pointing to the correct keg. -    if f.pinned? -      f.unpin -      f.pin -    end    rescue FormulaInstallationAlreadyAttemptedError      # We already attempted to upgrade f as part of the dependency tree of      # another formula. In that case, don't generate an error, just move on. | 
