Sha256: da52b79b9d2ecf4576f2af38fea264c5124791be8bcf504517b38dfcb725b420
Contents?: true
Size: 1.76 KB
Versions: 2
Compression:
Stored size: 1.76 KB
Contents
# frozen_string_literal: true module Script module Commands class Create < ShopifyCli::SubCommand options do |parser, flags| parser.on('--name=NAME') { |name| flags[:name] = name } parser.on('--extension_point=EP_NAME') { |ep_name| flags[:extension_point] = ep_name } end def call(args, _name) language = 'ts' cur_dir = @ctx.root form = Forms::Create.ask(@ctx, args, options.flags) return @ctx.puts(self.class.help) if form.nil? unless !form.name.empty? && form.extension_point && ScriptProject::SUPPORTED_LANGUAGES.include?(language) return @ctx.puts(self.class.help) end project = Layers::Application::CreateScript.call( ctx: @ctx, language: language, script_name: form.name, extension_point_type: form.extension_point ) @ctx.puts(@ctx.message('script.create.change_directory_notice', project.script_name)) rescue Script::Errors::ScriptProjectAlreadyExistsError => e UI::ErrorHandler.pretty_print_and_raise(e, failed_op: @ctx.message('script.create.error.operation_failed')) rescue StandardError => e ScriptProject.cleanup(ctx: @ctx, script_name: form.name, root_dir: cur_dir) if form UI::ErrorHandler.pretty_print_and_raise(e, failed_op: @ctx.message('script.create.error.operation_failed')) end def self.help ShopifyCli::Context.message('script.create.help', ShopifyCli::TOOL_NAME) end def self.extended_help allowed_values = Script::Layers::Application::ExtensionPoints.types.map { |type| "{{cyan:#{type}}}" } ShopifyCli::Context.message('script.create.extended_help', ShopifyCli::TOOL_NAME, allowed_values.join(', ')) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
shopify-cli-1.0.4 | lib/project_types/script/commands/create.rb |
shopify-cli-1.0.3 | lib/project_types/script/commands/create.rb |