@@ -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
@@ -340,6 +345,17 @@ def install_artifacts(predecessor: nil)
340
345
already_installed_artifacts . unshift ( artifact )
341
346
end
342
347
348
+ unless @cask . login_items . empty?
349
+ if login_items?
350
+ @cask . login_items . each do |lgi |
351
+ # TODO: register the login_items here using osascript
352
+ ohai "***** Will REGISTER login_item: #{ lgi } "
353
+ end
354
+ else
355
+ ohai "Skipping processing of login_items"
356
+ end
357
+ end
358
+
343
359
save_config_file
344
360
save_download_sha if @cask . version . latest?
345
361
rescue => e
@@ -584,6 +600,15 @@ def uninstall_artifacts(clear: false, successor: nil)
584
600
odebug "Uninstalling artifacts"
585
601
odebug "#{ ::Utils . pluralize ( "artifact" , artifacts . length , include_count : true ) } defined" , artifacts
586
602
603
+ if login_items?
604
+ @cask . login_items . each do |lgi |
605
+ # TODO: unregister the login_items here using osascript
606
+ ohai "***** Will UNREGISTER login_item: #{ lgi } "
607
+ end
608
+ else
609
+ ohai "Skipping processing of login_items"
610
+ end
611
+
587
612
artifacts . each do |artifact |
588
613
if artifact . respond_to? ( :uninstall_phase )
589
614
artifact = T . cast (
0 commit comments