shopify-cli 1.0.2 → 1.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +4 -0
  3. data/lib/project_types/extension/cli.rb +1 -1
  4. data/lib/project_types/extension/commands/build.rb +1 -1
  5. data/lib/project_types/rails/cli.rb +0 -1
  6. data/lib/project_types/script/cli.rb +2 -3
  7. data/lib/project_types/script/commands/create.rb +4 -4
  8. data/lib/project_types/script/commands/disable.rb +4 -14
  9. data/lib/project_types/script/commands/enable.rb +35 -11
  10. data/lib/project_types/script/commands/push.rb +9 -9
  11. data/lib/project_types/script/config/extension_points.yml +9 -3
  12. data/lib/project_types/script/forms/script_form.rb +5 -2
  13. data/lib/project_types/script/layers/application/create_script.rb +7 -6
  14. data/lib/project_types/script/layers/application/disable_script.rb +9 -7
  15. data/lib/project_types/script/layers/application/enable_script.rb +11 -9
  16. data/lib/project_types/script/layers/application/push_script.rb +6 -4
  17. data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +2 -2
  18. data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +1 -1
  19. data/lib/project_types/script/layers/infrastructure/errors.rb +1 -0
  20. data/lib/project_types/script/layers/infrastructure/script_service.rb +2 -0
  21. data/lib/project_types/script/messages/messages.rb +16 -19
  22. data/lib/project_types/script/script_project.rb +6 -2
  23. data/lib/project_types/script/templates/ts/as-pect.config.js +6 -0
  24. data/lib/project_types/script/ui/error_handler.rb +4 -0
  25. data/lib/project_types/script/ui/printing_spinner.rb +75 -0
  26. data/lib/shopify-cli/admin_api/schema.rb +20 -18
  27. data/lib/shopify-cli/command.rb +2 -5
  28. data/lib/shopify-cli/commands.rb +1 -0
  29. data/lib/shopify-cli/commands/config.rb +44 -0
  30. data/lib/shopify-cli/commands/connect.rb +17 -10
  31. data/lib/shopify-cli/commands/create.rb +1 -1
  32. data/lib/shopify-cli/commands/help.rb +1 -1
  33. data/lib/shopify-cli/commands/system.rb +1 -1
  34. data/lib/shopify-cli/core.rb +0 -1
  35. data/lib/shopify-cli/feature.rb +97 -0
  36. data/lib/shopify-cli/messages/messages.rb +31 -2
  37. data/lib/shopify-cli/partners_api/organizations.rb +7 -7
  38. data/lib/shopify-cli/project_type.rb +2 -5
  39. data/lib/shopify-cli/tasks/ensure_env.rb +0 -1
  40. data/lib/shopify-cli/tasks/update_dashboard_urls.rb +4 -3
  41. data/lib/shopify-cli/tunnel.rb +33 -9
  42. data/lib/shopify-cli/version.rb +1 -1
  43. data/lib/shopify_cli.rb +1 -0
  44. metadata +5 -4
  45. data/lib/project_types/script/forms/enable.rb +0 -24
  46. data/lib/project_types/script/forms/push.rb +0 -19
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3355ade46f06f8fad98098842f7b68bb0a154a53921a498ca4aba18379512ff6
4
- data.tar.gz: 57617469febb8905d737a9991f4da4a578e0f87bc8cad17bfc3d674e28cd40c2
3
+ metadata.gz: 2311f814efc977b70f6a1e4541e4e7a2daf627a900397a08d1868eaedbd17ba8
4
+ data.tar.gz: be52f7301fcdd6f8ab377209dc50d587bbf9bfcbd7f7cc461fba702c59a1620f
5
5
  SHA512:
6
- metadata.gz: a71cd8e3f4f9409f0c527ab6da9152e592d7cd1be173d9fe4e1499713998cf245541504151a1e63fa5901cf0c83b1d41302bc6628defff86042908b5e63d37af
7
- data.tar.gz: 2d16c25b44bd21abbcd154abd0ff5d3b3e9e464b7c89377b523299855800cd65bf3357d89b3d92d8a66137e8316d64de755263a1bc21f30df1c5ad3b8e492492
6
+ metadata.gz: 8c1a078a7e1a78d8616fd6f0ff3dfdf52a635a756f62eb897d8a14da59ba14162a9c83e4f0384ea5ad240efaf649b3f55812b345a9a334ca9de713730d6e1c0f
7
+ data.tar.gz: f8d4cd3489a73d5ea9fe29f57b4687cecaf60ed3440334c2b85e726ac18621036968f8141e5dc0fe91ef2995000cf77ccf7025d3667a27c6b77c83b704690b61
@@ -1,3 +1,7 @@
1
+ Version 1.0.3
2
+ ------
3
+ * Fix a bug which causes an error in the `populate` and `generate` commands when prompting for the shop name
4
+
1
5
  Version 1.0.2
2
6
  ------
3
7
  * Fix missing shop parameter to AdminAPI.query() call (impacting populate and generate commands)
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Extension
4
4
  class Project < ShopifyCli::ProjectType
5
- hidden_project_type
5
+ hidden_feature
6
6
  creator 'App Extension', 'Extension::Commands::Create'
7
7
 
8
8
  register_command('Extension::Commands::Build', "build")
@@ -4,7 +4,7 @@ require 'shopify_cli'
4
4
  module Extension
5
5
  module Commands
6
6
  class Build < ExtensionCommand
7
- hidden_command
7
+ hidden_feature
8
8
 
9
9
  YARN_BUILD_COMMAND = %w(build)
10
10
  NPM_BUILD_COMMAND = %w(run-script build)
@@ -1,7 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
  module Rails
3
3
  class Project < ShopifyCli::ProjectType
4
- # hidden_project_type
5
4
  creator 'Ruby on Rails App', 'Rails::Commands::Create'
6
5
 
7
6
  register_command('Rails::Commands::Deploy', "deploy")
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Script
4
4
  class Project < ShopifyCli::ProjectType
5
- hidden_project_type
5
+ hidden_feature(feature_set: :script_project)
6
6
  creator 'Script', 'Script::Commands::Create'
7
7
 
8
8
  register_command('Script::Commands::Push', 'push')
@@ -24,8 +24,6 @@ module Script
24
24
  # define/autoload project specific Forms
25
25
  module Forms
26
26
  autoload :Create, Project.project_filepath('forms/create')
27
- autoload :Push, Project.project_filepath('forms/push')
28
- autoload :Enable, Project.project_filepath('forms/enable')
29
27
  autoload :ScriptForm, Project.project_filepath('forms/script_form')
30
28
  end
31
29
 
@@ -66,6 +64,7 @@ module Script
66
64
 
67
65
  module UI
68
66
  autoload :ErrorHandler, Project.project_filepath('ui/error_handler')
67
+ autoload :PrintingSpinner, Project.project_filepath('ui/printing_spinner')
69
68
  autoload :StrictSpinner, Project.project_filepath('ui/strict_spinner')
70
69
  end
71
70
 
@@ -19,15 +19,15 @@ module Script
19
19
  return @ctx.puts(self.class.help)
20
20
  end
21
21
 
22
- Layers::Application::CreateScript.call(
22
+ project = Layers::Application::CreateScript.call(
23
23
  ctx: @ctx,
24
24
  language: language,
25
25
  script_name: form.name,
26
26
  extension_point_type: form.extension_point
27
27
  )
28
- project = ScriptProject.current
29
- @ctx.puts(@ctx.message('script.create.script_path', folder: project.script_name))
30
- @ctx.puts(@ctx.message('script.create.script_created', script_id: project.source_file))
28
+ @ctx.puts(@ctx.message('script.create.change_directory_notice', project.script_name))
29
+ rescue Script::Errors::ScriptProjectAlreadyExistsError => e
30
+ UI::ErrorHandler.pretty_print_and_raise(e, failed_op: @ctx.message('script.create.error.operation_failed'))
31
31
  rescue StandardError => e
32
32
  ScriptProject.cleanup(ctx: @ctx, script_name: form.name, root_dir: cur_dir) if form
33
33
  UI::ErrorHandler.pretty_print_and_raise(e, failed_op: @ctx.message('script.create.error.operation_failed'))
@@ -3,20 +3,14 @@
3
3
  module Script
4
4
  module Commands
5
5
  class Disable < ShopifyCli::Command
6
- options do |parser, flags|
7
- parser.on('--api_key=APIKEY') { |t| flags[:api_key] = t }
8
- parser.on('--shop_domain=MYSHOPIFYDOMAIN') { |t| flags[:shop_domain] = t }
9
- end
10
-
11
- def call(args, _name)
12
- form = Forms::Enable.ask(@ctx, args, options.flags)
13
- return @ctx.puts(self.class.help) unless form
6
+ prerequisite_task :ensure_env
14
7
 
8
+ def call(_args, _name)
15
9
  project = ScriptProject.current
16
10
  Layers::Application::DisableScript.call(
17
11
  ctx: @ctx,
18
- api_key: form.api_key,
19
- shop_domain: form.shop_domain,
12
+ api_key: project.env[:api_key],
13
+ shop_domain: project.env[:shop],
20
14
  extension_point_type: project.extension_point_type
21
15
  )
22
16
  @ctx.puts(@ctx.message('script.disable.script_disabled'))
@@ -27,10 +21,6 @@ module Script
27
21
  def self.help
28
22
  ShopifyCli::Context.message('script.disable.help', ShopifyCli::TOOL_NAME)
29
23
  end
30
-
31
- def self.extended_help
32
- ShopifyCli::Context.message('script.disable.extended_help', ShopifyCli::TOOL_NAME)
33
- end
34
24
  end
35
25
  end
36
26
  end
@@ -3,29 +3,31 @@
3
3
  module Script
4
4
  module Commands
5
5
  class Enable < ShopifyCli::Command
6
+ prerequisite_task :ensure_env
6
7
  options do |parser, flags|
7
- parser.on('--api_key=APIKEY') { |t| flags[:api_key] = t }
8
- parser.on('--shop_domain=MYSHOPIFYDOMAIN') { |t| flags[:shop_domain] = t }
8
+ parser.on('--config_props=KEYVALUEPAIRS', Array) do |t|
9
+ flags[:config_props] = Hash[t.map { |s| s.split(':') }]
10
+ end
11
+ parser.on('--config_file=CONFIGFILEPATH') { |t| flags[:config_file] = t }
9
12
  end
10
13
 
11
- def call(args, _name)
12
- form = Forms::Enable.ask(@ctx, args, options.flags)
13
- return @ctx.puts(self.class.help) unless form
14
-
14
+ def call(_args, _name)
15
15
  project = ScriptProject.current
16
+ api_key = project.env[:api_key]
17
+ shop_domain = project.env[:shop]
16
18
 
17
19
  Layers::Application::EnableScript.call(
18
20
  ctx: @ctx,
19
- api_key: form.api_key,
20
- shop_domain: form.shop_domain,
21
- configuration: { entries: [] },
21
+ api_key: api_key,
22
+ shop_domain: shop_domain,
23
+ configuration: acquire_configuration(**slice(options.flags, :config_file, :config_props)),
22
24
  extension_point_type: project.extension_point_type,
23
25
  title: project.script_name
24
26
  )
25
27
  @ctx.puts(@ctx.message(
26
28
  'script.enable.script_enabled',
27
- api_key: form.api_key,
28
- shop_domain: form.shop_domain,
29
+ api_key: api_key,
30
+ shop_domain: shop_domain,
29
31
  type: project.extension_point_type.capitalize,
30
32
  title: project.script_name
31
33
  ))
@@ -41,6 +43,28 @@ module Script
41
43
  def self.extended_help
42
44
  ShopifyCli::Context.message('script.enable.extended_help', ShopifyCli::TOOL_NAME)
43
45
  end
46
+
47
+ private
48
+
49
+ def acquire_configuration(config_file: nil, config_props: nil)
50
+ properties = {}
51
+ properties = YAML.load(File.read(config_file)) unless config_file.nil?
52
+ properties = properties.merge(config_props) unless config_props.nil?
53
+
54
+ configuration = { entries: [] }
55
+ properties.each do |key, value|
56
+ configuration[:entries].push({
57
+ key: key,
58
+ value: value,
59
+ })
60
+ end
61
+ configuration
62
+ end
63
+
64
+ # No slice pre Ruby 2.5 so roll our own
65
+ def slice(hash, *keys)
66
+ Hash[hash.to_a - hash.select { |key, _value| !keys.include?(key) }.to_a]
67
+ end
44
68
  end
45
69
  end
46
70
  end
@@ -3,27 +3,27 @@
3
3
  module Script
4
4
  module Commands
5
5
  class Push < ShopifyCli::Command
6
+ prerequisite_task :ensure_env
7
+
6
8
  options do |parser, flags|
7
- parser.on('--api_key=APIKEY') { |t| flags[:api_key] = t }
8
9
  parser.on('--force') { |t| flags[:force] = t }
9
10
  end
10
11
 
11
- def call(args, _name)
12
- form = Forms::Push.ask(@ctx, args, options.flags)
12
+ def call(_args, _name)
13
13
  project = ScriptProject.current
14
-
15
- return @ctx.puts(self.class.help) unless form && ScriptProject::SUPPORTED_LANGUAGES.include?(project.language)
16
-
14
+ api_key = project.env[:api_key]
15
+ return @ctx.puts(self.class.help) unless api_key &&
16
+ ScriptProject::SUPPORTED_LANGUAGES.include?(project.language)
17
17
  Layers::Application::PushScript.call(
18
18
  ctx: @ctx,
19
19
  language: project.language,
20
20
  extension_point_type: project.extension_point_type,
21
21
  script_name: project.script_name,
22
22
  source_file: project.source_file,
23
- api_key: form.api_key,
24
- force: form.force
23
+ api_key: api_key,
24
+ force: options.flags.key?(:force)
25
25
  )
26
- @ctx.puts(@ctx.message('script.push.script_pushed', api_key: form.api_key))
26
+ @ctx.puts(@ctx.message('script.push.script_pushed', api_key: api_key))
27
27
  rescue StandardError => e
28
28
  UI::ErrorHandler.pretty_print_and_raise(e, failed_op: @ctx.message('script.push.error.operation_failed'))
29
29
  end
@@ -1,18 +1,24 @@
1
1
  discount:
2
2
  assemblyscript:
3
3
  package: "@shopify/extension-point-as-discount"
4
- version: "^0.2.3"
4
+ version: "^0.2.4"
5
5
  sdk-version: "^6.0.0"
6
6
  toolchain-version: "^1.1.0"
7
7
  unit_limit_per_order:
8
8
  assemblyscript:
9
9
  package: "@shopify/extension-point-as-unit-limit-per-order"
10
- version: "^0.1.4"
10
+ version: "^0.1.6"
11
11
  sdk-version: "^6.0.0"
12
12
  toolchain-version: "^1.1.0"
13
13
  payment_filter:
14
14
  assemblyscript:
15
15
  package: "@shopify/extension-point-as-payment-filter"
16
- version: "^0.2.1"
16
+ version: "^0.2.2"
17
+ sdk-version: "^6.0.0"
18
+ toolchain-version: "^1.1.0"
19
+ shipping_filter:
20
+ assemblyscript:
21
+ package: "@shopify/extension-point-as-shipping-filter"
22
+ version: "^0.2.4"
17
23
  sdk-version: "^6.0.0"
18
24
  toolchain-version: "^1.1.0"
@@ -11,8 +11,11 @@ module Script
11
11
 
12
12
  def organizations
13
13
  return @organizations if defined?(@organizations)
14
- ctx.puts(ctx.message('script.forms.script_form.fetching_organizations'))
15
- @organizations = ShopifyCli::PartnersAPI::Organizations.fetch_with_app(ctx)
14
+ UI::PrintingSpinner.spin(ctx, ctx.message('script.forms.script_form.fetching_organizations')) do |ctx, spinner|
15
+ @organizations = ShopifyCli::PartnersAPI::Organizations.fetch_with_app(ctx)
16
+ spinner.update_title(ctx.message('script.forms.script_form.fetched_organizations'))
17
+ end
18
+ @organizations
16
19
  end
17
20
 
18
21
  def ask_app_api_key(apps, message: ctx.message('script.forms.script_form.ask_app_api_key_default'))
@@ -12,8 +12,9 @@ module Script
12
12
  project = setup_project(ctx, script_name, extension_point)
13
13
  project_creator = Infrastructure::ProjectCreator
14
14
  .for(ctx, language, extension_point, script_name, project.directory)
15
- install_dependencies(ctx, language, script_name, project, project_creator)
16
- bootstrap(ctx, project_creator)
15
+ install_dependencies(ctx, language, script_name, project.source_file, project_creator)
16
+ bootstrap(ctx, project.source_path, project_creator)
17
+ project
17
18
  end
18
19
 
19
20
  private
@@ -30,16 +31,16 @@ module Script
30
31
  ScriptProject.current
31
32
  end
32
33
 
33
- def install_dependencies(ctx, language, script_name, project, project_creator)
34
- task_runner = Infrastructure::TaskRunner.for(ctx, language, script_name, project.source_file)
34
+ def install_dependencies(ctx, language, script_name, source_file, project_creator)
35
+ task_runner = Infrastructure::TaskRunner.for(ctx, language, script_name, source_file)
35
36
  project_creator.setup_dependencies
36
37
  ProjectDependencies.install(ctx: ctx, task_runner: task_runner)
37
38
  end
38
39
 
39
- def bootstrap(ctx, project_creator)
40
+ def bootstrap(ctx, source_path, project_creator)
40
41
  UI::StrictSpinner.spin(ctx.message('script.create.creating')) do |spinner|
41
42
  project_creator.bootstrap
42
- spinner.update_title(ctx.message('script.create.created'))
43
+ spinner.update_title(ctx.message('script.create.created', source_path))
43
44
  end
44
45
  end
45
46
  end
@@ -5,13 +5,15 @@ module Script
5
5
  module Application
6
6
  class DisableScript
7
7
  def self.call(ctx:, api_key:, shop_domain:, extension_point_type:)
8
- script_service = Infrastructure::ScriptService.new(ctx: ctx)
9
- script_service.disable(
10
- api_key: api_key,
11
- shop_domain: shop_domain,
12
- extension_point_type: extension_point_type,
13
- )
14
- ctx.puts(ctx.message('script.application.disabled'))
8
+ UI::PrintingSpinner.spin(ctx, ctx.message('script.application.disabling')) do |p_ctx, spinner|
9
+ script_service = Infrastructure::ScriptService.new(ctx: p_ctx)
10
+ script_service.disable(
11
+ api_key: api_key,
12
+ shop_domain: shop_domain,
13
+ extension_point_type: extension_point_type,
14
+ )
15
+ spinner.update_title(p_ctx.message('script.application.disabled'))
16
+ end
15
17
  end
16
18
  end
17
19
  end
@@ -5,15 +5,17 @@ module Script
5
5
  module Application
6
6
  class EnableScript
7
7
  def self.call(ctx:, api_key:, shop_domain:, configuration:, extension_point_type:, title:)
8
- script_service = Infrastructure::ScriptService.new(ctx: ctx)
9
- script_service.enable(
10
- api_key: api_key,
11
- shop_domain: shop_domain,
12
- configuration: configuration,
13
- extension_point_type: extension_point_type,
14
- title: title
15
- )
16
- ctx.puts(ctx.message('script.application.enabled'))
8
+ UI::PrintingSpinner.spin(ctx, ctx.message('script.application.enabling')) do |p_ctx, spinner|
9
+ script_service = Infrastructure::ScriptService.new(ctx: p_ctx)
10
+ script_service.enable(
11
+ api_key: api_key,
12
+ shop_domain: shop_domain,
13
+ configuration: configuration,
14
+ extension_point_type: extension_point_type,
15
+ title: title
16
+ )
17
+ spinner.update_title(p_ctx.message('script.application.enabled'))
18
+ end
17
19
  end
18
20
  end
19
21
  end
@@ -20,10 +20,12 @@ module Script
20
20
  private
21
21
 
22
22
  def push_script(ctx, task_runner, script, api_key, force)
23
- Infrastructure::PushPackageRepository.new(ctx: ctx)
24
- .get_push_package(script, task_runner.compiled_type)
25
- .push(Infrastructure::ScriptService.new(ctx: ctx), api_key, force)
26
- ctx.puts(ctx.message('script.application.pushed'))
23
+ UI::PrintingSpinner.spin(ctx, ctx.message('script.application.pushing')) do |p_ctx, spinner|
24
+ Infrastructure::PushPackageRepository.new(ctx: p_ctx)
25
+ .get_push_package(script, task_runner.compiled_type)
26
+ .push(Infrastructure::ScriptService.new(ctx: p_ctx), api_key, force)
27
+ spinner.update_title(p_ctx.message('script.application.pushed'))
28
+ end
27
29
  end
28
30
  end
29
31
  end
@@ -86,14 +86,14 @@ module Script
86
86
  "@shopify/scripts-toolchain-as": "#{extension_point.sdks[:ts].toolchain_version}",
87
87
  "#{extension_point.sdks[:ts].package}": "#{extension_point.sdks[:ts].version}",
88
88
  "@as-pect/cli": "4.0.0",
89
- "as-wasi": "^0.0.1",
89
+ "as-wasi": "^0.2.0",
90
90
  "assemblyscript": "^0.12.0"
91
91
  },
92
92
  "scripts": {
93
93
  "test": "asp --config test/as-pect.config.js --summary --verbose"
94
94
  },
95
95
  "engines": {
96
- "node": ">=12.16"
96
+ "node": ">=14.5"
97
97
  }
98
98
  }
99
99
  HERE
@@ -6,7 +6,7 @@ module Script
6
6
  class AssemblyScriptTaskRunner
7
7
  BYTECODE_FILE = "%{name}.wasm"
8
8
  SCRIPT_SDK_BUILD = "npx --no-install shopify-scripts-build --src=../%{source} --binary=#{BYTECODE_FILE} "\
9
- "-- --lib=../node_modules --validate --optimize"
9
+ "-- --lib=../node_modules --optimize --use Date="
10
10
 
11
11
  attr_reader :ctx, :script_name, :script_source_file
12
12
 
@@ -5,6 +5,7 @@ module Script
5
5
  module Infrastructure
6
6
  module Errors
7
7
  class AppNotInstalledError < ScriptProjectError; end
8
+ class AppScriptNotPushedError < ScriptProjectError; end
8
9
  class AppScriptUndefinedError < ScriptProjectError; end
9
10
  class BuildError < ScriptProjectError; end
10
11
  class DependencyInstallError < ScriptProjectError; end
@@ -60,6 +60,8 @@ module Script
60
60
  raise Errors::AppScriptUndefinedError, api_key
61
61
  elsif user_errors.any? { |e| e['tag'] == 'shop_script_conflict' }
62
62
  raise Errors::ShopScriptConflictError
63
+ elsif user_errors.any? { |e| e['tag'] == 'app_script_not_pushed' }
64
+ raise Errors::AppScriptNotPushedError
63
65
  else
64
66
  raise Errors::ScriptServiceUserError.new(query_name, user_errors.to_s)
65
67
  end
@@ -42,6 +42,8 @@ module Script
42
42
 
43
43
  app_not_installed_cause: "App not installed on development store.",
44
44
 
45
+ app_script_not_pushed_help: "Push the script and then try this command again.",
46
+
45
47
  app_script_undefined_help: "Push script to app.",
46
48
 
47
49
  build_error_cause: "Something went wrong while building the script.",
@@ -83,10 +85,9 @@ module Script
83
85
  operation_failed: "Script not created.",
84
86
  },
85
87
 
86
- script_path: "{{v}} Project directory: {{green:%{folder}}}",
87
- script_created: "{{v}} Script created: {{green:%{script_id}}}",
88
+ change_directory_notice: "{{*}} Change directories to {{green:%s}} to run script commands",
88
89
  creating: "Creating script",
89
- created: "Created script",
90
+ created: "Created script: {{green:%s}}",
90
91
  },
91
92
 
92
93
  push: {
@@ -96,7 +97,6 @@ module Script
96
97
  HELP
97
98
  extended_help: <<~HELP,
98
99
  \s\sOptions:
99
- \s\s{{command:--API_key=<API_key>}} API key. Must be a valid API key, otherwise store access fails.
100
100
  \s\s{{command:[--force]}} Forces the script to be overwritten if an instance of it already exists.
101
101
  HELP
102
102
 
@@ -112,14 +112,10 @@ module Script
112
112
  Turn off script in development store.
113
113
  Usage: {{command:%s disable}}
114
114
  HELP
115
- extended_help: <<~HELP,
116
- \s\sOptions:
117
- \s\s{{command:--API_key=<API_key>}} API key. Must be a valid API key, otherwise store access fails.
118
- \s\s{{command:--shop_domain=<my_store.myshopify.com>}} Test store URL. Must be an existing test store.
119
- HELP
120
115
 
121
116
  error: {
122
117
  operation_failed: "Can't disable script.",
118
+ not_pushed_to_app: "Can't disable the script because it hasn't been pushed to the app.",
123
119
  },
124
120
 
125
121
  script_disabled: "{{v}} Script disabled. Script is turned off in development store.",
@@ -132,8 +128,8 @@ module Script
132
128
  HELP
133
129
  extended_help: <<~HELP,
134
130
  \s\sOptions:
135
- \s\s{{command:--API_key=<API_key>}} API key. Must be a valid API key, otherwise store access fails.
136
- \s\s{{command:--shop_domain=<my_store.myshopify.com>}} Test store URL. Must be an existing test store.
131
+ \s\s{{command:--config_props='name1:value1, name2:value2'}} Optional. Define the configuration of your script by passing individual name and value pairs. If used with --config_file, then matching values in --config_props will override those set in the file.
132
+ \s\s{{command:--config_file=<path/to/YAMLFilename>}} Optional. Define the configuration of your script using a YAML formatted file. --config_props values override properties in this file.
137
133
  HELP
138
134
 
139
135
  info: "{{*}} A script always remains enabled until you disable it - even after pushing "\
@@ -142,6 +138,7 @@ module Script
142
138
 
143
139
  error: {
144
140
  operation_failed: "Can't enable script.",
141
+ not_pushed_to_app: "Can't enable the script because it hasn't been pushed to the app.",
145
142
  },
146
143
 
147
144
  script_enabled: "{{v}} Script enabled. %{type} script %{title} in app (API key: %{api_key}) "\
@@ -177,25 +174,25 @@ module Script
177
174
  script_form: {
178
175
  ask_app_api_key_default: "Which app do you want this script to belong to?",
179
176
  ask_shop_domain_default: "Select a development store",
180
- fetching_organizations: "{{i}} Fetching partner organizations",
177
+ fetching_organizations: "Fetching partner organizations",
178
+ fetched_organizations: "Fetched partner organizations",
181
179
  select_organization: "Select partner organization.",
182
180
  using_app: "Using app {{green:%{title} (%{api_key})}}.",
183
181
  using_development_store: "Using development store {{green:%{domain}}}",
184
182
  using_organization: "Partner organization {{green:%s}}.",
185
183
  },
186
- enable: {
187
- ask_app_api_key: "Which app is the script pushed to?",
188
- ask_shop_domain: "Which development store is the app installed on?",
189
- },
190
184
  },
191
185
 
192
186
  application: {
193
187
  building: "Building",
194
188
  building_script: "Building script",
195
189
  built: "Built",
196
- pushed: "{{v}} Pushed",
197
- disabled: "{{v}} Disabled",
198
- enabled: "{{v}} Enabled",
190
+ pushing: "Pushing",
191
+ pushed: "Pushed",
192
+ disabling: "Disabling",
193
+ disabled: "Disabled",
194
+ enabling: "Enabling",
195
+ enabled: "Enabled",
199
196
  },
200
197
  },
201
198
  }.freeze