31 lines
720 B
Ruby
31 lines
720 B
Ruby
# 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
|