@@ -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
@@ -344,6 +349,17 @@ def install_artifacts(predecessor: nil)
344349 already_installed_artifacts . unshift ( artifact )
345350 end
346351
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+
347363 save_config_file
348364 save_download_sha if @cask . version . latest?
349365 rescue => e
@@ -588,6 +604,15 @@ def uninstall_artifacts(clear: false, successor: nil)
588604 odebug "Uninstalling artifacts"
589605 odebug "#{ ::Utils . pluralize ( "artifact" , artifacts . length , include_count : true ) } defined" , artifacts
590606
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+
591616 artifacts . each do |artifact |
592617 if artifact . respond_to? ( :uninstall_phase )
593618 artifact = T . cast (
0 commit comments