@@ -25,14 +25,15 @@ class Installer
25
25
skip_cask_deps : T ::Boolean , binaries : T ::Boolean , verbose : T ::Boolean , zap : T ::Boolean ,
26
26
require_sha : T ::Boolean , upgrade : T ::Boolean , reinstall : T ::Boolean , installed_as_dependency : T ::Boolean ,
27
27
installed_on_request : T ::Boolean , quarantine : T ::Boolean , verify_download_integrity : T ::Boolean ,
28
- quiet : T ::Boolean , download_queue : T . nilable ( Homebrew ::DownloadQueue )
28
+ quiet : T ::Boolean , download_queue : T . nilable ( Homebrew ::DownloadQueue ) , login_items : T :: Boolean
29
29
) . void
30
30
}
31
31
def initialize ( cask , command : SystemCommand , force : false , adopt : false ,
32
32
skip_cask_deps : false , binaries : true , verbose : false ,
33
33
zap : false , require_sha : false , upgrade : false , reinstall : false ,
34
34
installed_as_dependency : false , installed_on_request : true ,
35
- quarantine : true , verify_download_integrity : true , quiet : false , download_queue : nil )
35
+ quarantine : true , verify_download_integrity : true , quiet : false , download_queue : nil ,
36
+ login_items : false )
36
37
@cask = cask
37
38
@command = command
38
39
@force = force
@@ -51,6 +52,7 @@ def initialize(cask, command: SystemCommand, force: false, adopt: false,
51
52
@quiet = quiet
52
53
@download_queue = download_queue
53
54
@ran_prelude = T . let ( false , T ::Boolean )
55
+ @login_items = login_items
54
56
end
55
57
56
58
sig { returns ( T ::Boolean ) }
@@ -68,6 +70,9 @@ def installed_as_dependency? = @installed_as_dependency
68
70
sig { returns ( T ::Boolean ) }
69
71
def installed_on_request? = @installed_on_request
70
72
73
+ sig { returns ( T ::Boolean ) }
74
+ def login_items? = @login_items
75
+
71
76
sig { returns ( T ::Boolean ) }
72
77
def quarantine? = @quarantine
73
78
@@ -344,6 +349,17 @@ def install_artifacts(predecessor: nil)
344
349
already_installed_artifacts . unshift ( artifact )
345
350
end
346
351
352
+ unless @cask . login_items . empty?
353
+ if login_items?
354
+ @cask . login_items . each do |lgi |
355
+ # TODO: register the login_items here using osascript
356
+ ohai "***** Will REGISTER login_item: #{ lgi } "
357
+ end
358
+ else
359
+ ohai "Skipping processing of login_items"
360
+ end
361
+ end
362
+
347
363
save_config_file
348
364
save_download_sha if @cask . version . latest?
349
365
rescue => e
@@ -588,6 +604,15 @@ def uninstall_artifacts(clear: false, successor: nil)
588
604
odebug "Uninstalling artifacts"
589
605
odebug "#{ ::Utils . pluralize ( "artifact" , artifacts . length , include_count : true ) } defined" , artifacts
590
606
607
+ if login_items?
608
+ @cask . login_items . each do |lgi |
609
+ # TODO: unregister the login_items here using osascript
610
+ ohai "***** Will UNREGISTER login_item: #{ lgi } "
611
+ end
612
+ else
613
+ ohai "Skipping processing of login_items"
614
+ end
615
+
591
616
artifacts . each do |artifact |
592
617
if artifact . respond_to? ( :uninstall_phase )
593
618
artifact = T . cast (
0 commit comments