Sha256: d0747d501a71e5fc0f1103ea45c95bbce4f740caf5379e6f1c69539d7dfa33ce

Contents?: true

Size: 1.27 KB

Versions: 2

Compression:

Stored size: 1.27 KB

Contents

module Script
  module Layers
    module Application
      class ProjectDependencies
        def self.bootstrap(ctx:, language:, extension_point:, script_name:)
          dep_manager = Infrastructure::DependencyManager.for(ctx, language, extension_point, script_name)
          dep_manager.bootstrap
        end

        def self.install(ctx:, language:, extension_point:, script_name:)
          dep_manager = Infrastructure::DependencyManager.for(ctx, language, extension_point, script_name)
          CLI::UI::Frame.open(ctx.message('script.project_deps.checking_with_npm')) do
            begin
              if dep_manager.installed?
                ctx.puts(ctx.message('script.project_deps.none_required'))
              else
                UI::StrictSpinner.spin(ctx.message('script.project_deps.installing')) do |spinner|
                  dep_manager.install
                  spinner.update_title(ctx.message('script.project_deps.installed'))
                end
              end
              true
            rescue Infrastructure::Errors::DependencyInstallError => e
              CLI::UI::Frame.with_frame_color_override(:red) do
                ctx.puts("\n#{e.message}")
              end
              raise e
            end
          end
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
shopify-cli-0.9.1 lib/project_types/script/layers/application/project_dependencies.rb
shopify-cli-0.9.0 lib/project_types/script/layers/application/project_dependencies.rb