@@ -9,6 +9,53 @@ module Cask
99 class Upgrade
1010 extend ::Utils ::Output ::Mixin
1111
12+ sig { returns ( T ::Array [ String ] ) }
13+ def self . greedy_casks
14+ if ( upgrade_greedy_casks = Homebrew ::EnvConfig . upgrade_greedy_casks . presence )
15+ upgrade_greedy_casks . split
16+ else
17+ [ ]
18+ end
19+ end
20+
21+ sig {
22+ params (
23+ casks : T ::Array [ Cask ] ,
24+ args : Homebrew ::CLI ::Args ,
25+ force : T . nilable ( T ::Boolean ) ,
26+ quiet : T . nilable ( T ::Boolean ) ,
27+ greedy : T . nilable ( T ::Boolean ) ,
28+ greedy_latest : T . nilable ( T ::Boolean ) ,
29+ greedy_auto_updates : T . nilable ( T ::Boolean ) ,
30+ ) . returns ( T ::Array [ Cask ] )
31+ }
32+ def self . outdated_casks ( casks , args :, force :, quiet :,
33+ greedy : false , greedy_latest : false , greedy_auto_updates : false )
34+ greedy = true if Homebrew ::EnvConfig . upgrade_greedy?
35+
36+ if casks . empty?
37+ Caskroom . casks ( config : Config . from_args ( args ) ) . select do |cask |
38+ cask_greedy = greedy || greedy_casks . include? ( cask . token )
39+ cask . outdated? ( greedy : cask_greedy , greedy_latest :,
40+ greedy_auto_updates :)
41+ end
42+ else
43+ casks . select do |cask |
44+ raise CaskNotInstalledError , cask if !cask . installed? && !force
45+
46+ if cask . outdated? ( greedy : true )
47+ true
48+ elsif cask . version . latest?
49+ opoo "Not upgrading #{ cask . token } , the downloaded artifact has not changed" unless quiet
50+ false
51+ else
52+ opoo "Not upgrading #{ cask . token } , the latest version is already installed" unless quiet
53+ false
54+ end
55+ end
56+ end
57+ end
58+
1259 sig {
1360 params (
1461 casks : Cask ,
@@ -43,35 +90,8 @@ def self.upgrade_casks!(
4390 )
4491 quarantine = true if quarantine . nil?
4592
46- greedy = true if Homebrew ::EnvConfig . upgrade_greedy?
47-
48- greedy_casks = if ( upgrade_greedy_casks = Homebrew ::EnvConfig . upgrade_greedy_casks . presence )
49- upgrade_greedy_casks . split
50- else
51- [ ]
52- end
53-
54- outdated_casks = if casks . empty?
55- Caskroom . casks ( config : Config . from_args ( args ) ) . select do |cask |
56- cask_greedy = greedy || greedy_casks . include? ( cask . token )
57- cask . outdated? ( greedy : cask_greedy , greedy_latest :,
58- greedy_auto_updates :)
59- end
60- else
61- casks . select do |cask |
62- raise CaskNotInstalledError , cask if !cask . installed? && !force
63-
64- if cask . outdated? ( greedy : true )
65- true
66- elsif cask . version . latest?
67- opoo "Not upgrading #{ cask . token } , the downloaded artifact has not changed" unless quiet
68- false
69- else
70- opoo "Not upgrading #{ cask . token } , the latest version is already installed" unless quiet
71- false
72- end
73- end
74- end
93+ outdated_casks = \
94+ self . outdated_casks ( casks , args :, greedy :, greedy_latest :, greedy_auto_updates :, force :, quiet :)
7595
7696 manual_installer_casks = outdated_casks . select do |cask |
7797 cask . artifacts . any? do |artifact |
0 commit comments