brew/Library/Homebrew/bundle/vscode_extension_installer.rb
Patrick Linnane 4513a43d53
Fix RuboCop failures.
Co-authored-by: Patrick Linnane <patrick@linnane.io>
Co-authored-by: Carlo Cabrera <github@carlo.cab>
Co-authored-by: Thierry Moisan <thierry.moisan@gmail.com>
Co-authored-by: Mike McQuaid <mike@mikemcquaid.com>
2025-07-14 19:12:38 +01:00

53 lines
1.6 KiB
Ruby

# typed: true # rubocop:todo Sorbet/StrictSigil
# frozen_string_literal: true
module Homebrew
module Bundle
module VscodeExtensionInstaller
def self.reset!
@installed_extensions = nil
end
def self.preinstall!(name, no_upgrade: false, verbose: false)
if !Bundle.vscode_installed? && Bundle.cask_installed?
puts "Installing visual-studio-code. It is not currently installed." if verbose
Bundle.brew("install", "--cask", "visual-studio-code", verbose:)
end
if extension_installed?(name)
puts "Skipping install of #{name} VSCode extension. It is already installed." if verbose
return false
end
raise "Unable to install #{name} VSCode extension. VSCode is not installed." unless Bundle.vscode_installed?
true
end
def self.install!(name, preinstall: true, no_upgrade: false, verbose: false, force: false)
return true unless preinstall
return true if extension_installed?(name)
puts "Installing #{name} VSCode extension. It is not currently installed." if verbose
return false unless Bundle.exchange_uid_if_needed! do
Bundle.system(T.must(Bundle.which_vscode), "--install-extension", name, verbose:)
end
installed_extensions << name
true
end
def self.extension_installed?(name)
installed_extensions.include? name.downcase
end
def self.installed_extensions
require "bundle/vscode_extension_dumper"
@installed_extensions ||= Homebrew::Bundle::VscodeExtensionDumper.extensions
end
end
end
end