brew/Library/Homebrew/bundle/vscode_extension_dumper.rb

31 lines
720 B
Ruby
Raw Normal View History

# typed: strict
# frozen_string_literal: true
module Homebrew
module Bundle
module VscodeExtensionDumper
sig { void }
def self.reset!
@extensions = nil
end
sig { returns(T::Array[String]) }
def self.extensions
@extensions ||= T.let(nil, T.nilable(T::Array[String]))
@extensions ||= if Bundle.vscode_installed?
Bundle.exchange_uid_if_needed! do
`"#{Bundle.which_vscode}" --list-extensions 2>/dev/null`
end.split("\n").map(&:downcase)
else
[]
end
end
sig { returns(String) }
def self.dump
extensions.map { |name| "vscode \"#{name}\"" }.join("\n")
end
end
end
end