@@ -21,14 +21,15 @@ class Installer
21
21
skip_cask_deps : T ::Boolean , binaries : T ::Boolean , verbose : T ::Boolean , zap : T ::Boolean ,
22
22
require_sha : T ::Boolean , upgrade : T ::Boolean , reinstall : T ::Boolean , installed_as_dependency : T ::Boolean ,
23
23
installed_on_request : T ::Boolean , quarantine : T ::Boolean , verify_download_integrity : T ::Boolean ,
24
- quiet : T ::Boolean , download_queue : T . nilable ( Homebrew ::DownloadQueue )
24
+ quiet : T ::Boolean , download_queue : T . nilable ( Homebrew ::DownloadQueue ) , login_items : T :: Boolean
25
25
) . void
26
26
}
27
27
def initialize ( cask , command : SystemCommand , force : false , adopt : false ,
28
28
skip_cask_deps : false , binaries : true , verbose : false ,
29
29
zap : false , require_sha : false , upgrade : false , reinstall : false ,
30
30
installed_as_dependency : false , installed_on_request : true ,
31
- quarantine : true , verify_download_integrity : true , quiet : false , download_queue : nil )
31
+ quarantine : true , verify_download_integrity : true , quiet : false , download_queue : nil ,
32
+ login_items : false )
32
33
@cask = cask
33
34
@command = command
34
35
@force = force
@@ -47,6 +48,7 @@ def initialize(cask, command: SystemCommand, force: false, adopt: false,
47
48
@quiet = quiet
48
49
@download_queue = download_queue
49
50
@ran_prelude = T . let ( false , T ::Boolean )
51
+ @login_items = login_items
50
52
end
51
53
52
54
sig { returns ( T ::Boolean ) }
@@ -64,6 +66,9 @@ def installed_as_dependency? = @installed_as_dependency
64
66
sig { returns ( T ::Boolean ) }
65
67
def installed_on_request? = @installed_on_request
66
68
69
+ sig { returns ( T ::Boolean ) }
70
+ def login_items? = @login_items
71
+
67
72
sig { returns ( T ::Boolean ) }
68
73
def quarantine? = @quarantine
69
74
@@ -326,6 +331,17 @@ def install_artifacts(predecessor: nil)
326
331
already_installed_artifacts . unshift ( artifact )
327
332
end
328
333
334
+ unless @cask . login_items . empty?
335
+ if login_items?
336
+ @cask . login_items . each do |lgi |
337
+ # TODO: register the login_items here using osascript
338
+ ohai "***** Will REGISTER login_item: #{ lgi } "
339
+ end
340
+ else
341
+ ohai "Skipping processing of login_items"
342
+ end
343
+ end
344
+
329
345
save_config_file
330
346
save_download_sha if @cask . version . latest?
331
347
rescue => e
@@ -570,6 +586,15 @@ def uninstall_artifacts(clear: false, successor: nil)
570
586
odebug "Uninstalling artifacts"
571
587
odebug "#{ ::Utils . pluralize ( "artifact" , artifacts . length , include_count : true ) } defined" , artifacts
572
588
589
+ if login_items?
590
+ @cask . login_items . each do |lgi |
591
+ # TODO: unregister the login_items here using osascript
592
+ ohai "***** Will UNREGISTER login_item: #{ lgi } "
593
+ end
594
+ else
595
+ ohai "Skipping processing of login_items"
596
+ end
597
+
573
598
artifacts . each do |artifact |
574
599
if artifact . respond_to? ( :uninstall_phase )
575
600
artifact = T . cast (
0 commit comments