@@ -25,14 +25,15 @@ class Installer
2525 skip_cask_deps : T ::Boolean , binaries : T ::Boolean , verbose : T ::Boolean , zap : T ::Boolean ,
2626 require_sha : T ::Boolean , upgrade : T ::Boolean , reinstall : T ::Boolean , installed_as_dependency : T ::Boolean ,
2727 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
2929 ) . void
3030 }
3131 def initialize ( cask , command : SystemCommand , force : false , adopt : false ,
3232 skip_cask_deps : false , binaries : true , verbose : false ,
3333 zap : false , require_sha : false , upgrade : false , reinstall : false ,
3434 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 )
3637 @cask = cask
3738 @command = command
3839 @force = force
@@ -51,6 +52,7 @@ def initialize(cask, command: SystemCommand, force: false, adopt: false,
5152 @quiet = quiet
5253 @download_queue = download_queue
5354 @ran_prelude = T . let ( false , T ::Boolean )
55+ @login_items = login_items
5456 end
5557
5658 sig { returns ( T ::Boolean ) }
@@ -68,6 +70,9 @@ def installed_as_dependency? = @installed_as_dependency
6870 sig { returns ( T ::Boolean ) }
6971 def installed_on_request? = @installed_on_request
7072
73+ sig { returns ( T ::Boolean ) }
74+ def login_items? = @login_items
75+
7176 sig { returns ( T ::Boolean ) }
7277 def quarantine? = @quarantine
7378
@@ -348,6 +353,17 @@ def install_artifacts(predecessor: nil)
348353 already_installed_artifacts . unshift ( artifact )
349354 end
350355
356+ unless @cask . login_items . empty?
357+ if login_items?
358+ @cask . login_items . each do |lgi |
359+ # TODO: register the login_items here using osascript
360+ ohai "***** Will REGISTER login_item: #{ lgi } "
361+ end
362+ else
363+ ohai "Skipping processing of login_items"
364+ end
365+ end
366+
351367 save_config_file
352368 save_download_sha if @cask . version . latest?
353369 rescue => e
@@ -592,6 +608,15 @@ def uninstall_artifacts(clear: false, successor: nil)
592608 odebug "Uninstalling artifacts"
593609 odebug "#{ ::Utils . pluralize ( "artifact" , artifacts . length , include_count : true ) } defined" , artifacts
594610
611+ if login_items?
612+ @cask . login_items . each do |lgi |
613+ # TODO: unregister the login_items here using osascript
614+ ohai "***** Will UNREGISTER login_item: #{ lgi } "
615+ end
616+ else
617+ ohai "Skipping processing of login_items"
618+ end
619+
595620 artifacts . each do |artifact |
596621 if artifact . respond_to? ( :uninstall_phase )
597622 artifact = T . cast (
0 commit comments