shopify-cli 2.2.2 → 2.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (267) hide show
  1. checksums.yaml +4 -4
  2. data/.github/CODEOWNERS +1 -0
  3. data/.github/ISSUE_TEMPLATE.md +0 -4
  4. data/.github/workflows/shopify.yml +104 -0
  5. data/.gitignore +3 -0
  6. data/.rubocop.yml +14 -14
  7. data/.rubocop_todo.yml +3 -3
  8. data/CHANGELOG.md +30 -0
  9. data/CONTRIBUTING.md +23 -0
  10. data/Dockerfile +17 -0
  11. data/Gemfile +1 -0
  12. data/Gemfile.lock +67 -24
  13. data/RELEASING.md +1 -1
  14. data/Rakefile +75 -18
  15. data/bin/console +11 -0
  16. data/bin/shopify +16 -4
  17. data/dev.yml +14 -1
  18. data/ext/shopify-cli/extconf.rb +2 -0
  19. data/ext/shopify-extensions/extconf.rb +21 -0
  20. data/ext/shopify-extensions/shopify_extensions.rb +152 -0
  21. data/ext/shopify-extensions/version +1 -0
  22. data/lib/project_types/extension/cli.rb +19 -3
  23. data/lib/project_types/extension/commands/build.rb +32 -3
  24. data/lib/project_types/extension/commands/check.rb +2 -2
  25. data/lib/project_types/extension/commands/connect.rb +1 -1
  26. data/lib/project_types/extension/commands/create.rb +59 -16
  27. data/lib/project_types/extension/commands/extension_command.rb +1 -1
  28. data/lib/project_types/extension/commands/info.rb +1 -1
  29. data/lib/project_types/extension/commands/push.rb +1 -1
  30. data/lib/project_types/extension/commands/register.rb +2 -2
  31. data/lib/project_types/extension/commands/serve.rb +5 -5
  32. data/lib/project_types/extension/commands/tunnel.rb +6 -6
  33. data/lib/project_types/extension/extension_project.rb +4 -4
  34. data/lib/project_types/extension/features/argo.rb +3 -3
  35. data/lib/project_types/extension/features/argo_config.rb +5 -5
  36. data/lib/project_types/extension/features/argo_serve.rb +21 -6
  37. data/lib/project_types/extension/features/argo_setup.rb +1 -1
  38. data/lib/project_types/extension/features/argo_setup_step.rb +1 -1
  39. data/lib/project_types/extension/features/argo_setup_steps.rb +2 -2
  40. data/lib/project_types/extension/forms/connect.rb +2 -2
  41. data/lib/project_types/extension/forms/create.rb +6 -3
  42. data/lib/project_types/extension/forms/questions/ask_app.rb +2 -2
  43. data/lib/project_types/extension/forms/questions/ask_name.rb +1 -1
  44. data/lib/project_types/extension/forms/questions/ask_registration.rb +2 -2
  45. data/lib/project_types/extension/forms/questions/ask_template.rb +44 -0
  46. data/lib/project_types/extension/forms/questions/ask_type.rb +2 -2
  47. data/lib/project_types/extension/messages/message_loading.rb +2 -2
  48. data/lib/project_types/extension/messages/messages.rb +3 -0
  49. data/lib/project_types/extension/models/development_server.rb +78 -0
  50. data/lib/project_types/extension/models/development_server_requirements.rb +35 -0
  51. data/lib/project_types/extension/models/lazy_specification_handler.rb +1 -1
  52. data/lib/project_types/extension/models/server_config/base.rb +31 -0
  53. data/lib/project_types/extension/models/server_config/development.rb +23 -0
  54. data/lib/project_types/extension/models/server_config/development_entries.rb +38 -0
  55. data/lib/project_types/extension/models/server_config/development_renderer.rb +30 -0
  56. data/lib/project_types/extension/models/server_config/extension.rb +35 -0
  57. data/lib/project_types/extension/models/server_config/root.rb +18 -0
  58. data/lib/project_types/extension/models/server_config/user.rb +10 -0
  59. data/lib/project_types/extension/models/specification.rb +1 -1
  60. data/lib/project_types/extension/models/specification_handlers/checkout_ui_extension.rb +1 -1
  61. data/lib/project_types/extension/models/specification_handlers/default.rb +14 -2
  62. data/lib/project_types/extension/models/specification_handlers/theme_app_extension.rb +1 -1
  63. data/lib/project_types/extension/models/specifications.rb +4 -4
  64. data/lib/project_types/extension/tasks/choose_next_available_port.rb +2 -2
  65. data/lib/project_types/extension/tasks/configure_features.rb +1 -1
  66. data/lib/project_types/extension/tasks/configure_options.rb +1 -1
  67. data/lib/project_types/extension/tasks/converters/product_converter.rb +1 -1
  68. data/lib/project_types/extension/tasks/converters/server_config_converter.rb +31 -0
  69. data/lib/project_types/extension/tasks/create_extension.rb +2 -2
  70. data/lib/project_types/extension/tasks/fetch_specifications.rb +2 -2
  71. data/lib/project_types/extension/tasks/find_npm_packages.rb +5 -5
  72. data/lib/project_types/extension/tasks/get_app.rb +2 -2
  73. data/lib/project_types/extension/tasks/get_apps.rb +2 -2
  74. data/lib/project_types/extension/tasks/get_extensions.rb +2 -2
  75. data/lib/project_types/extension/tasks/get_product.rb +2 -2
  76. data/lib/project_types/extension/tasks/load_server_config.rb +23 -0
  77. data/lib/project_types/extension/tasks/run_extension_command.rb +81 -0
  78. data/lib/project_types/extension/tasks/update_draft.rb +2 -2
  79. data/lib/project_types/node/cli.rb +3 -3
  80. data/lib/project_types/node/commands/connect.rb +4 -4
  81. data/lib/project_types/node/commands/create.rb +10 -14
  82. data/lib/project_types/node/commands/deploy/heroku.rb +4 -4
  83. data/lib/project_types/node/commands/deploy.rb +3 -3
  84. data/lib/project_types/node/commands/generate.rb +2 -2
  85. data/lib/project_types/node/commands/open.rb +3 -3
  86. data/lib/project_types/node/commands/serve.rb +15 -7
  87. data/lib/project_types/node/commands/tunnel.rb +6 -6
  88. data/lib/project_types/node/forms/create.rb +3 -3
  89. data/lib/project_types/node/messages/messages.rb +3 -0
  90. data/lib/project_types/php/cli.rb +27 -0
  91. data/lib/project_types/php/commands/connect.rb +19 -0
  92. data/lib/project_types/php/commands/create.rb +143 -0
  93. data/lib/project_types/php/commands/deploy/heroku.rb +129 -0
  94. data/lib/project_types/php/commands/deploy.rb +32 -0
  95. data/lib/project_types/php/commands/open.rb +16 -0
  96. data/lib/project_types/php/commands/serve.rb +51 -0
  97. data/lib/project_types/php/commands/tunnel.rb +37 -0
  98. data/lib/project_types/php/forms/create.rb +45 -0
  99. data/lib/project_types/php/messages/messages.rb +191 -0
  100. data/lib/project_types/rails/cli.rb +3 -3
  101. data/lib/project_types/rails/commands/connect.rb +4 -4
  102. data/lib/project_types/rails/commands/create.rb +12 -16
  103. data/lib/project_types/rails/commands/deploy/heroku.rb +4 -4
  104. data/lib/project_types/rails/commands/deploy.rb +3 -3
  105. data/lib/project_types/rails/commands/generate/webhook.rb +3 -3
  106. data/lib/project_types/rails/commands/generate.rb +3 -3
  107. data/lib/project_types/rails/commands/open.rb +3 -3
  108. data/lib/project_types/rails/commands/serve.rb +8 -8
  109. data/lib/project_types/rails/commands/tunnel.rb +6 -6
  110. data/lib/project_types/rails/forms/create.rb +3 -3
  111. data/lib/project_types/rails/gem.rb +1 -1
  112. data/lib/project_types/rails/ruby.rb +1 -1
  113. data/lib/project_types/script/cli.rb +16 -6
  114. data/lib/project_types/script/commands/create.rb +4 -2
  115. data/lib/project_types/script/commands/push.rb +2 -2
  116. data/lib/project_types/script/config/extension_points.yml +30 -29
  117. data/lib/project_types/script/forms/create.rb +1 -1
  118. data/lib/project_types/script/layers/application/create_script.rb +32 -12
  119. data/lib/project_types/script/layers/application/extension_points.rb +4 -4
  120. data/lib/project_types/script/layers/application/push_script.rb +13 -1
  121. data/lib/project_types/script/layers/domain/extension_point.rb +13 -45
  122. data/lib/project_types/script/layers/domain/push_package.rb +0 -12
  123. data/lib/project_types/script/layers/domain/script_project.rb +2 -2
  124. data/lib/project_types/script/layers/infrastructure/api_clients/partners_proxy_api_client.rb +57 -0
  125. data/lib/project_types/script/layers/infrastructure/api_clients/script_service_api_client.rb +35 -0
  126. data/lib/project_types/script/layers/infrastructure/command_runner.rb +1 -1
  127. data/lib/project_types/script/layers/infrastructure/errors.rb +5 -0
  128. data/lib/project_types/script/layers/infrastructure/languages/assemblyscript_project_creator.rb +10 -90
  129. data/lib/project_types/script/layers/infrastructure/languages/project_creator.rb +76 -11
  130. data/lib/project_types/script/layers/infrastructure/languages/task_runner.rb +1 -1
  131. data/lib/project_types/script/layers/infrastructure/languages/typescript_project_creator.rb +33 -0
  132. data/lib/project_types/script/layers/infrastructure/languages/typescript_task_runner.rb +105 -0
  133. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +1 -1
  134. data/lib/project_types/script/layers/infrastructure/script_project_repository.rb +6 -6
  135. data/lib/project_types/script/layers/infrastructure/script_service.rb +25 -144
  136. data/lib/project_types/script/layers/infrastructure/script_uploader.rb +27 -0
  137. data/lib/project_types/script/layers/infrastructure/service_locator.rb +20 -0
  138. data/lib/project_types/script/messages/messages.rb +4 -0
  139. data/lib/project_types/script/tasks/ensure_env.rb +7 -7
  140. data/lib/project_types/script/ui/error_handler.rb +84 -76
  141. data/lib/project_types/script/ui/printing_spinner.rb +1 -1
  142. data/lib/project_types/theme/cli.rb +3 -3
  143. data/lib/project_types/theme/commands/check.rb +3 -3
  144. data/lib/project_types/theme/commands/delete.rb +7 -7
  145. data/lib/project_types/theme/commands/init.rb +3 -3
  146. data/lib/project_types/theme/commands/language_server.rb +2 -2
  147. data/lib/project_types/theme/commands/package.rb +2 -2
  148. data/lib/project_types/theme/commands/publish.rb +5 -5
  149. data/lib/project_types/theme/commands/pull.rb +15 -9
  150. data/lib/project_types/theme/commands/push.rb +18 -12
  151. data/lib/project_types/theme/commands/serve.rb +4 -4
  152. data/lib/project_types/theme/forms/confirm_store.rb +1 -1
  153. data/lib/project_types/theme/forms/select.rb +2 -2
  154. data/lib/{shopify-cli → shopify_cli}/admin_api/populate_resource_command.rb +3 -3
  155. data/lib/{shopify-cli → shopify_cli}/admin_api/schema.rb +4 -4
  156. data/lib/{shopify-cli → shopify_cli}/admin_api.rb +27 -27
  157. data/lib/{shopify-cli → shopify_cli}/api.rb +8 -8
  158. data/lib/shopify_cli/command/app_sub_command.rb +16 -0
  159. data/lib/{shopify-cli → shopify_cli}/command.rb +3 -3
  160. data/lib/{shopify-cli → shopify_cli}/commands/config.rb +14 -14
  161. data/lib/{shopify-cli → shopify_cli}/commands/help.rb +4 -4
  162. data/lib/{shopify-cli → shopify_cli}/commands/login.rb +7 -7
  163. data/lib/shopify_cli/commands/logout.rb +39 -0
  164. data/lib/{shopify-cli → shopify_cli}/commands/populate/customer.rb +4 -4
  165. data/lib/{shopify-cli → shopify_cli}/commands/populate/draft_order.rb +4 -4
  166. data/lib/{shopify-cli → shopify_cli}/commands/populate/product.rb +4 -4
  167. data/lib/shopify_cli/commands/populate.rb +23 -0
  168. data/lib/shopify_cli/commands/store.rb +15 -0
  169. data/lib/{shopify-cli → shopify_cli}/commands/switch.rb +5 -5
  170. data/lib/{shopify-cli → shopify_cli}/commands/system.rb +10 -10
  171. data/lib/shopify_cli/commands/version.rb +15 -0
  172. data/lib/{shopify-cli → shopify_cli}/commands/whoami.rb +7 -7
  173. data/lib/shopify_cli/commands.rb +34 -0
  174. data/lib/{shopify-cli → shopify_cli}/connect.rb +3 -3
  175. data/lib/shopify_cli/constants.rb +54 -0
  176. data/lib/{shopify-cli → shopify_cli}/context.rb +6 -6
  177. data/lib/{shopify-cli → shopify_cli}/core/entry_point.rb +7 -7
  178. data/lib/{shopify-cli → shopify_cli}/core/executor.rb +8 -4
  179. data/lib/{shopify-cli → shopify_cli}/core/finalize.rb +1 -1
  180. data/lib/{shopify-cli → shopify_cli}/core/help_resolver.rb +2 -2
  181. data/lib/{shopify-cli → shopify_cli}/core/monorail.rb +8 -8
  182. data/lib/shopify_cli/core.rb +8 -0
  183. data/lib/{shopify-cli → shopify_cli}/db.rb +8 -8
  184. data/lib/shopify_cli/environment.rb +91 -0
  185. data/lib/shopify_cli/exception_reporter/permission_controller.rb +54 -0
  186. data/lib/shopify_cli/exception_reporter.rb +55 -0
  187. data/lib/{shopify-cli → shopify_cli}/feature.rb +8 -8
  188. data/lib/{shopify-cli → shopify_cli}/form.rb +2 -2
  189. data/lib/{shopify-cli → shopify_cli}/git.rb +38 -8
  190. data/lib/{shopify-cli → shopify_cli}/helpers/haikunator.rb +1 -1
  191. data/lib/shopify_cli/helpers.rb +5 -0
  192. data/lib/{shopify-cli → shopify_cli}/heroku.rb +38 -13
  193. data/lib/{shopify-cli → shopify_cli}/http_request.rb +1 -1
  194. data/lib/{shopify-cli → shopify_cli}/identity_auth/servlet.rb +1 -1
  195. data/lib/{shopify-cli → shopify_cli}/identity_auth.rb +24 -31
  196. data/lib/{shopify-cli → shopify_cli}/js_deps.rb +7 -7
  197. data/lib/{shopify-cli → shopify_cli}/js_system.rb +10 -10
  198. data/lib/{shopify-cli → shopify_cli}/lazy_delegator.rb +2 -2
  199. data/lib/{shopify-cli → shopify_cli}/messages/messages.rb +44 -2
  200. data/lib/{shopify-cli → shopify_cli}/method_object.rb +15 -8
  201. data/lib/shopify_cli/migrator/migration.rb +27 -0
  202. data/lib/shopify_cli/migrator/migrations/1631709766_noop.rb +13 -0
  203. data/lib/shopify_cli/migrator.rb +48 -0
  204. data/lib/{shopify-cli → shopify_cli}/options.rb +1 -1
  205. data/lib/{shopify-cli → shopify_cli}/packager.rb +8 -8
  206. data/lib/{shopify-cli → shopify_cli}/partners_api/organizations.rb +1 -1
  207. data/lib/{shopify-cli → shopify_cli}/partners_api.rb +16 -40
  208. data/lib/shopify_cli/php_deps.rb +102 -0
  209. data/lib/{shopify-cli → shopify_cli}/process_supervision.rb +23 -21
  210. data/lib/{shopify-cli → shopify_cli}/project.rb +15 -15
  211. data/lib/{shopify-cli → shopify_cli}/project_commands.rb +3 -3
  212. data/lib/{shopify-cli → shopify_cli}/project_type.rb +5 -5
  213. data/lib/{shopify-cli → shopify_cli}/resolve_constant.rb +5 -5
  214. data/lib/{shopify-cli → shopify_cli}/resources/env_file.rb +1 -1
  215. data/lib/shopify_cli/resources.rb +5 -0
  216. data/lib/{shopify-cli → shopify_cli}/result.rb +11 -11
  217. data/lib/{shopify-cli → shopify_cli}/shopifolk.rb +6 -6
  218. data/lib/{shopify-cli → shopify_cli}/sub_command.rb +1 -1
  219. data/lib/{shopify-cli → shopify_cli}/task.rb +1 -1
  220. data/lib/{shopify-cli → shopify_cli}/tasks/confirm_store.rb +3 -3
  221. data/lib/{shopify-cli → shopify_cli}/tasks/create_api_client.rb +4 -4
  222. data/lib/shopify_cli/tasks/ensure_authenticated.rb +13 -0
  223. data/lib/{shopify-cli → shopify_cli}/tasks/ensure_dev_store.rb +5 -5
  224. data/lib/{shopify-cli → shopify_cli}/tasks/ensure_env.rb +3 -3
  225. data/lib/{shopify-cli → shopify_cli}/tasks/ensure_loopback_url.rb +4 -4
  226. data/lib/{shopify-cli → shopify_cli}/tasks/ensure_project_type.rb +3 -3
  227. data/lib/{shopify-cli → shopify_cli}/tasks/select_org_and_shop.rb +8 -8
  228. data/lib/{shopify-cli → shopify_cli}/tasks/update_dashboard_urls.rb +6 -6
  229. data/lib/{shopify-cli → shopify_cli}/tasks.rb +10 -10
  230. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/certificate_manager.rb +5 -5
  231. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/header_hash.rb +5 -1
  232. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/hot-reload.js +0 -0
  233. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/hot_reload.rb +5 -6
  234. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/local_assets.rb +1 -1
  235. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/proxy.rb +15 -3
  236. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/sse.rb +1 -1
  237. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/watcher.rb +1 -1
  238. data/lib/{shopify-cli → shopify_cli}/theme/dev_server/web_server.rb +1 -1
  239. data/lib/{shopify-cli → shopify_cli}/theme/dev_server.rb +3 -3
  240. data/lib/shopify_cli/theme/development_theme.rb +83 -0
  241. data/lib/{shopify-cli → shopify_cli}/theme/file.rb +12 -4
  242. data/lib/{shopify-cli → shopify_cli}/theme/ignore_filter.rb +8 -1
  243. data/lib/{shopify-cli → shopify_cli}/theme/mime_type.rb +1 -1
  244. data/lib/{shopify-cli → shopify_cli}/theme/syncer.rb +7 -7
  245. data/lib/{shopify-cli → shopify_cli}/theme/theme.rb +4 -4
  246. data/lib/{shopify-cli → shopify_cli}/transform_data_structure.rb +4 -4
  247. data/lib/{shopify-cli → shopify_cli}/tunnel.rb +14 -14
  248. data/lib/shopify_cli/version.rb +3 -0
  249. data/lib/shopify_cli.rb +61 -50
  250. data/shopify-cli.gemspec +13 -5
  251. data/utilities/docker.rb +47 -0
  252. data/utilities/utilities.rb +5 -0
  253. metadata +155 -97
  254. data/.github/workflows/build.yml +0 -28
  255. data/lib/project_types/script/layers/infrastructure/languages/rust_project_creator.rb +0 -73
  256. data/lib/project_types/script/layers/infrastructure/languages/rust_task_runner.rb +0 -60
  257. data/lib/shopify-cli/commands/logout.rb +0 -39
  258. data/lib/shopify-cli/commands/populate.rb +0 -23
  259. data/lib/shopify-cli/commands/store.rb +0 -15
  260. data/lib/shopify-cli/commands/version.rb +0 -15
  261. data/lib/shopify-cli/commands.rb +0 -34
  262. data/lib/shopify-cli/core.rb +0 -8
  263. data/lib/shopify-cli/helpers.rb +0 -5
  264. data/lib/shopify-cli/resources.rb +0 -5
  265. data/lib/shopify-cli/tasks/ensure_authenticated.rb +0 -13
  266. data/lib/shopify-cli/theme/development_theme.rb +0 -69
  267. data/lib/shopify-cli/version.rb +0 -3
@@ -4,7 +4,7 @@ module Script
4
4
  module UI
5
5
  module ErrorHandler
6
6
  def self.display(failed_op:, cause_of_error:, help_suggestion:)
7
- $stderr.puts(CLI::UI.fmt(ShopifyCli::Context.message("script.error.generic")))
7
+ $stderr.puts(CLI::UI.fmt(ShopifyCLI::Context.message("script.error.generic")))
8
8
  full_msg = failed_op ? failed_op.dup : ""
9
9
  full_msg << " #{cause_of_error}" if cause_of_error
10
10
  full_msg << " #{help_suggestion}" if help_suggestion
@@ -13,7 +13,7 @@ module Script
13
13
 
14
14
  def self.display_and_raise(failed_op: nil, cause_of_error: nil, help_suggestion: nil)
15
15
  display(failed_op: failed_op, cause_of_error: cause_of_error, help_suggestion: help_suggestion)
16
- raise(ShopifyCli::AbortSilent)
16
+ raise(ShopifyCLI::AbortSilent)
17
17
  end
18
18
 
19
19
  def self.pretty_print_and_raise(e, failed_op: nil)
@@ -26,85 +26,85 @@ module Script
26
26
  case e
27
27
  when Errno::EACCES
28
28
  {
29
- cause_of_error: ShopifyCli::Context.message("script.error.eacces_cause"),
30
- help_suggestion: ShopifyCli::Context.message("script.error.eacces_help"),
29
+ cause_of_error: ShopifyCLI::Context.message("script.error.eacces_cause"),
30
+ help_suggestion: ShopifyCLI::Context.message("script.error.eacces_help"),
31
31
  }
32
32
  when Errno::ENOSPC
33
33
  {
34
- cause_of_error: ShopifyCli::Context.message("script.error.enospc_cause"),
35
- help_suggestion: ShopifyCli::Context.message("script.error.enospc_help"),
34
+ cause_of_error: ShopifyCLI::Context.message("script.error.enospc_cause"),
35
+ help_suggestion: ShopifyCLI::Context.message("script.error.enospc_help"),
36
36
  }
37
- when ShopifyCli::IdentityAuth::Error
37
+ when ShopifyCLI::IdentityAuth::Error
38
38
  {
39
- cause_of_error: ShopifyCli::Context.message("script.error.oauth_cause"),
40
- help_suggestion: ShopifyCli::Context.message("script.error.oauth_help"),
39
+ cause_of_error: ShopifyCLI::Context.message("script.error.oauth_cause"),
40
+ help_suggestion: ShopifyCLI::Context.message("script.error.oauth_help"),
41
41
  }
42
42
  when Layers::Infrastructure::Errors::InvalidContextError
43
43
  {
44
- cause_of_error: ShopifyCli::Context.message("script.error.invalid_context_cause"),
45
- help_suggestion: ShopifyCli::Context.message("script.error.invalid_context_help"),
44
+ cause_of_error: ShopifyCLI::Context.message("script.error.invalid_context_cause"),
45
+ help_suggestion: ShopifyCLI::Context.message("script.error.invalid_context_help"),
46
46
  }
47
47
  when Errors::InvalidConfigProps
48
48
  {
49
- cause_of_error: ShopifyCli::Context.message("script.error.invalid_config_props_cause"),
50
- help_suggestion: ShopifyCli::Context.message("script.error.invalid_config_props_help"),
49
+ cause_of_error: ShopifyCLI::Context.message("script.error.invalid_config_props_cause"),
50
+ help_suggestion: ShopifyCLI::Context.message("script.error.invalid_config_props_help"),
51
51
  }
52
52
  when Errors::InvalidConfigYAMLError
53
53
  {
54
- cause_of_error: ShopifyCli::Context.message("script.error.invalid_config", e.config_file),
54
+ cause_of_error: ShopifyCLI::Context.message("script.error.invalid_config", e.config_file),
55
55
  }
56
56
  when Layers::Infrastructure::Errors::InvalidLanguageError
57
57
  {
58
- cause_of_error: ShopifyCli::Context.message("script.error.invalid_language_cause", e.language),
59
- help_suggestion: ShopifyCli::Context.message(
58
+ cause_of_error: ShopifyCLI::Context.message("script.error.invalid_language_cause", e.language),
59
+ help_suggestion: ShopifyCLI::Context.message(
60
60
  "script.error.invalid_language_help",
61
61
  Script::Layers::Application::ExtensionPoints.languages(type: e.extension_point_type).join(", ")
62
62
  ),
63
63
  }
64
64
  when Errors::InvalidScriptNameError
65
65
  {
66
- cause_of_error: ShopifyCli::Context.message("script.error.invalid_script_name_cause"),
67
- help_suggestion: ShopifyCli::Context.message("script.error.invalid_script_name_help"),
66
+ cause_of_error: ShopifyCLI::Context.message("script.error.invalid_script_name_cause"),
67
+ help_suggestion: ShopifyCLI::Context.message("script.error.invalid_script_name_help"),
68
68
  }
69
69
  when Errors::NoExistingAppsError
70
70
  {
71
- cause_of_error: ShopifyCli::Context.message("script.error.no_existing_apps_cause"),
72
- help_suggestion: ShopifyCli::Context.message("script.error.no_existing_apps_help"),
71
+ cause_of_error: ShopifyCLI::Context.message("script.error.no_existing_apps_cause"),
72
+ help_suggestion: ShopifyCLI::Context.message("script.error.no_existing_apps_help"),
73
73
  }
74
74
  when Errors::NoExistingOrganizationsError
75
75
  {
76
- cause_of_error: ShopifyCli::Context.message("script.error.no_existing_orgs_cause"),
77
- help_suggestion: ShopifyCli::Context.message("script.error.no_existing_orgs_help"),
76
+ cause_of_error: ShopifyCLI::Context.message("script.error.no_existing_orgs_cause"),
77
+ help_suggestion: ShopifyCLI::Context.message("script.error.no_existing_orgs_help"),
78
78
  }
79
79
  when Errors::NoExistingStoresError
80
80
  {
81
- cause_of_error: ShopifyCli::Context.message("script.error.no_existing_stores_cause"),
82
- help_suggestion: ShopifyCli::Context.message(
81
+ cause_of_error: ShopifyCLI::Context.message("script.error.no_existing_stores_cause"),
82
+ help_suggestion: ShopifyCLI::Context.message(
83
83
  "script.error.no_existing_stores_help",
84
84
  organization_id: e.organization_id
85
85
  ),
86
86
  }
87
87
  when Layers::Infrastructure::Errors::ScriptProjectAlreadyExistsError
88
88
  {
89
- cause_of_error: ShopifyCli::Context.message("script.error.project_exists_cause"),
90
- help_suggestion: ShopifyCli::Context.message("script.error.project_exists_help"),
89
+ cause_of_error: ShopifyCLI::Context.message("script.error.project_exists_cause"),
90
+ help_suggestion: ShopifyCLI::Context.message("script.error.project_exists_help"),
91
91
  }
92
92
  when Layers::Infrastructure::Errors::DeprecatedEPError
93
93
  {
94
- cause_of_error: ShopifyCli::Context.message("script.error.deprecated_ep", e.ep),
95
- help_suggestion: ShopifyCli::Context.message("script.error.deprecated_ep_cause"),
94
+ cause_of_error: ShopifyCLI::Context.message("script.error.deprecated_ep", e.ep),
95
+ help_suggestion: ShopifyCLI::Context.message("script.error.deprecated_ep_cause"),
96
96
  }
97
97
  when Layers::Domain::Errors::InvalidExtensionPointError
98
98
  {
99
- cause_of_error: ShopifyCli::Context.message("script.error.invalid_extension_cause", e.type),
100
- help_suggestion: ShopifyCli::Context.message(
99
+ cause_of_error: ShopifyCLI::Context.message("script.error.invalid_extension_cause", e.type),
100
+ help_suggestion: ShopifyCLI::Context.message(
101
101
  "script.error.invalid_extension_help",
102
- Script::Layers::Application::ExtensionPoints.types.join(", ")
102
+ Script::Layers::Application::ExtensionPoints.available_types.join(", ")
103
103
  ),
104
104
  }
105
105
  when Layers::Domain::Errors::ScriptNotFoundError
106
106
  {
107
- cause_of_error: ShopifyCli::Context.message(
107
+ cause_of_error: ShopifyCLI::Context.message(
108
108
  "script.error.script_not_found_cause",
109
109
  e.script_name,
110
110
  e.extension_point_type
@@ -112,135 +112,143 @@ module Script
112
112
  }
113
113
  when Layers::Domain::Errors::MetadataValidationError
114
114
  {
115
- cause_of_error: ShopifyCli::Context.message("script.error.metadata_validation_cause"),
116
- help_suggestion: ShopifyCli::Context.message("script.error.metadata_validation_help"),
115
+ cause_of_error: ShopifyCLI::Context.message("script.error.metadata_validation_cause"),
116
+ help_suggestion: ShopifyCLI::Context.message("script.error.metadata_validation_help"),
117
117
  }
118
118
  when Layers::Domain::Errors::MetadataNotFoundError
119
119
  {
120
- cause_of_error: ShopifyCli::Context.message("script.error.metadata_not_found_cause"),
121
- help_suggestion: ShopifyCli::Context.message("script.error.metadata_not_found_help"),
120
+ cause_of_error: ShopifyCLI::Context.message("script.error.metadata_not_found_cause"),
121
+ help_suggestion: ShopifyCLI::Context.message("script.error.metadata_not_found_help"),
122
122
  }
123
123
  when Layers::Domain::Errors::MissingScriptJsonFieldError
124
124
  {
125
- cause_of_error: ShopifyCli::Context.message("script.error.missing_script_json_field_cause", e.field),
126
- help_suggestion: ShopifyCli::Context.message("script.error.missing_script_json_field_help"),
125
+ cause_of_error: ShopifyCLI::Context.message("script.error.missing_script_json_field_cause", e.field),
126
+ help_suggestion: ShopifyCLI::Context.message("script.error.missing_script_json_field_help"),
127
127
  }
128
128
  when Layers::Domain::Errors::InvalidScriptJsonDefinitionError
129
129
  {
130
- cause_of_error: ShopifyCli::Context.message("script.error.invalid_script_json_definition_cause"),
131
- help_suggestion: ShopifyCli::Context.message("script.error.invalid_script_json_definition_help"),
130
+ cause_of_error: ShopifyCLI::Context.message("script.error.invalid_script_json_definition_cause"),
131
+ help_suggestion: ShopifyCLI::Context.message("script.error.invalid_script_json_definition_help"),
132
132
  }
133
133
  when Layers::Domain::Errors::NoScriptJsonFile
134
134
  {
135
- cause_of_error: ShopifyCli::Context.message("script.error.no_script_json_file_cause"),
136
- help_suggestion: ShopifyCli::Context.message("script.error.no_script_json_file_help"),
135
+ cause_of_error: ShopifyCLI::Context.message("script.error.no_script_json_file_cause"),
136
+ help_suggestion: ShopifyCLI::Context.message("script.error.no_script_json_file_help"),
137
137
  }
138
138
  when Layers::Infrastructure::Errors::AppNotInstalledError
139
139
  {
140
- cause_of_error: ShopifyCli::Context.message("script.error.app_not_installed_cause"),
140
+ cause_of_error: ShopifyCLI::Context.message("script.error.app_not_installed_cause"),
141
141
  }
142
142
  when Layers::Infrastructure::Errors::BuildError
143
143
  {
144
- cause_of_error: ShopifyCli::Context.message("script.error.build_error_cause"),
145
- help_suggestion: ShopifyCli::Context.message("script.error.build_error_help"),
144
+ cause_of_error: ShopifyCLI::Context.message("script.error.build_error_cause"),
145
+ help_suggestion: ShopifyCLI::Context.message("script.error.build_error_help"),
146
146
  }
147
147
  when Layers::Infrastructure::Errors::ScriptJsonSyntaxError
148
148
  {
149
- cause_of_error: ShopifyCli::Context.message("script.error.configuration_syntax_error_cause"),
150
- help_suggestion: ShopifyCli::Context.message("script.error.configuration_syntax_error_help"),
149
+ cause_of_error: ShopifyCLI::Context.message("script.error.configuration_syntax_error_cause"),
150
+ help_suggestion: ShopifyCLI::Context.message("script.error.configuration_syntax_error_help"),
151
151
  }
152
152
  when Layers::Infrastructure::Errors::ScriptJsonMissingKeysError
153
153
  {
154
- cause_of_error: ShopifyCli::Context.message(
154
+ cause_of_error: ShopifyCLI::Context.message(
155
155
  "script.error.configuration_missing_keys_error_cause",
156
156
  missing_keys: e.missing_keys
157
157
  ),
158
- help_suggestion: ShopifyCli::Context.message("script.error.configuration_missing_keys_error_help"),
158
+ help_suggestion: ShopifyCLI::Context.message("script.error.configuration_missing_keys_error_help"),
159
159
  }
160
160
  when Layers::Infrastructure::Errors::ScriptJsonInvalidValueError
161
161
  {
162
- cause_of_error: ShopifyCli::Context.message(
162
+ cause_of_error: ShopifyCLI::Context.message(
163
163
  "script.error.configuration_invalid_value_error_cause",
164
164
  valid_input_modes: e.valid_input_modes
165
165
  ),
166
- help_suggestion: ShopifyCli::Context.message("script.error.configuration_invalid_value_error_help"),
166
+ help_suggestion: ShopifyCLI::Context.message("script.error.configuration_invalid_value_error_help"),
167
167
  }
168
168
  when Layers::Infrastructure::Errors::ScriptJsonFieldsMissingKeysError
169
169
  {
170
- cause_of_error: ShopifyCli::Context.message(
170
+ cause_of_error: ShopifyCLI::Context.message(
171
171
  "script.error.configuration_schema_field_missing_keys_error_cause",
172
172
  missing_keys: e.missing_keys
173
173
  ),
174
- help_suggestion: ShopifyCli::Context.message(
174
+ help_suggestion: ShopifyCLI::Context.message(
175
175
  "script.error.configuration_definition_schema_field_missing_keys_error_help"
176
176
  ),
177
177
  }
178
178
  when Layers::Infrastructure::Errors::ScriptJsonFieldsInvalidValueError
179
179
  {
180
- cause_of_error: ShopifyCli::Context.message(
180
+ cause_of_error: ShopifyCLI::Context.message(
181
181
  "script.error.configuration_schema_field_invalid_value_error_cause",
182
182
  valid_types: e.valid_types
183
183
  ),
184
- help_suggestion: ShopifyCli::Context.message(
184
+ help_suggestion: ShopifyCLI::Context.message(
185
185
  "script.error.configuration_schema_field_invalid_value_error_help"
186
186
  ),
187
187
  }
188
188
  when Layers::Infrastructure::Errors::DependencyInstallError
189
189
  {
190
- cause_of_error: ShopifyCli::Context.message("script.error.dependency_install_cause"),
191
- help_suggestion: ShopifyCli::Context.message("script.error.dependency_install_help"),
190
+ cause_of_error: ShopifyCLI::Context.message("script.error.dependency_install_cause"),
191
+ help_suggestion: ShopifyCLI::Context.message("script.error.dependency_install_help"),
192
192
  }
193
193
  when Layers::Infrastructure::Errors::EmptyResponseError
194
194
  {
195
- cause_of_error: ShopifyCli::Context.message("script.error.failed_api_request_cause"),
196
- help_suggestion: ShopifyCli::Context.message("script.error.failed_api_request_help"),
195
+ cause_of_error: ShopifyCLI::Context.message("script.error.failed_api_request_cause"),
196
+ help_suggestion: ShopifyCLI::Context.message("script.error.failed_api_request_help"),
197
197
  }
198
198
  when Layers::Infrastructure::Errors::ForbiddenError
199
199
  {
200
- cause_of_error: ShopifyCli::Context.message("script.error.forbidden_error_cause"),
200
+ cause_of_error: ShopifyCLI::Context.message("script.error.forbidden_error_cause"),
201
201
  }
202
202
  when Layers::Infrastructure::Errors::GraphqlError
203
203
  {
204
- cause_of_error: ShopifyCli::Context.message(
204
+ cause_of_error: ShopifyCLI::Context.message(
205
205
  "script.error.graphql_error_cause", JSON.pretty_generate(e.errors)
206
206
  ),
207
- help_suggestion: ShopifyCli::Context.message("script.error.graphql_error_help"),
207
+ help_suggestion: ShopifyCLI::Context.message("script.error.graphql_error_help"),
208
208
  }
209
209
  when Layers::Infrastructure::Errors::SystemCallFailureError
210
210
  {
211
- cause_of_error: ShopifyCli::Context
211
+ cause_of_error: ShopifyCLI::Context
212
212
  .message("script.error.system_call_failure_cause", cmd: e.cmd),
213
- help_suggestion: ShopifyCli::Context.message("script.error.system_call_failure_help", out: e.out),
213
+ help_suggestion: ShopifyCLI::Context.message("script.error.system_call_failure_help", out: e.out),
214
214
  }
215
215
  when Layers::Infrastructure::Errors::ScriptRepushError
216
216
  {
217
- cause_of_error: ShopifyCli::Context.message("script.error.script_repush_cause"),
218
- help_suggestion: ShopifyCli::Context.message("script.error.script_repush_help"),
217
+ cause_of_error: ShopifyCLI::Context.message("script.error.script_repush_cause"),
218
+ help_suggestion: ShopifyCLI::Context.message("script.error.script_repush_help"),
219
219
  }
220
220
  when Layers::Infrastructure::Errors::ShopAuthenticationError
221
221
  {
222
- cause_of_error: ShopifyCli::Context.message("script.error.shop_auth_cause"),
223
- help_suggestion: ShopifyCli::Context.message("script.error.shop_auth_help"),
222
+ cause_of_error: ShopifyCLI::Context.message("script.error.shop_auth_cause"),
223
+ help_suggestion: ShopifyCLI::Context.message("script.error.shop_auth_help"),
224
224
  }
225
225
  when Layers::Infrastructure::Errors::BuildScriptNotFoundError
226
226
  {
227
- cause_of_error: ShopifyCli::Context.message("script.error.build_script_not_found"),
228
- help_suggestion: ShopifyCli::Context.message("script.error.build_script_suggestion"),
227
+ cause_of_error: ShopifyCLI::Context.message("script.error.build_script_not_found"),
228
+ help_suggestion: ShopifyCLI::Context.message("script.error.build_script_suggestion"),
229
229
  }
230
230
  when Layers::Infrastructure::Errors::InvalidBuildScriptError
231
231
  {
232
- cause_of_error: ShopifyCli::Context.message("script.error.invalid_build_script"),
233
- help_suggestion: ShopifyCli::Context.message("script.error.build_script_suggestion"),
232
+ cause_of_error: ShopifyCLI::Context.message("script.error.invalid_build_script"),
233
+ help_suggestion: ShopifyCLI::Context.message("script.error.build_script_suggestion"),
234
234
  }
235
235
  when Layers::Infrastructure::Errors::WebAssemblyBinaryNotFoundError
236
236
  {
237
- cause_of_error: ShopifyCli::Context.message("script.error.web_assembly_binary_not_found"),
238
- help_suggestion: ShopifyCli::Context.message("script.error.web_assembly_binary_not_found_suggestion"),
237
+ cause_of_error: ShopifyCLI::Context.message("script.error.web_assembly_binary_not_found"),
238
+ help_suggestion: ShopifyCLI::Context.message("script.error.web_assembly_binary_not_found_suggestion"),
239
+ }
240
+ when Layers::Infrastructure::Errors::ProjectConfigNotFoundError
241
+ {
242
+ cause_of_error: ShopifyCLI::Context.message("script.error.project_config_not_found"),
243
+ }
244
+ when Layers::Infrastructure::Errors::InvalidProjectConfigError
245
+ {
246
+ cause_of_error: ShopifyCLI::Context.message("script.error.invalid_project_config"),
239
247
  }
240
248
  when Layers::Infrastructure::Errors::ScriptUploadError
241
249
  {
242
- cause_of_error: ShopifyCli::Context.message("script.error.script_upload_cause"),
243
- help_suggestion: ShopifyCli::Context.message("script.error.script_upload_help"),
250
+ cause_of_error: ShopifyCLI::Context.message("script.error.script_upload_cause"),
251
+ help_suggestion: ShopifyCLI::Context.message("script.error.script_upload_help"),
244
252
  }
245
253
  end
246
254
  end
@@ -35,7 +35,7 @@ module Script
35
35
  # Printing within spinners requires the manipulation of ANSI escape
36
36
  # sequences in order to make sure the CLI::UI::Spinner does not overwrite
37
37
  # previously printed content.
38
- class PrintingSpinnerContext < ShopifyCli::Context
38
+ class PrintingSpinnerContext < ShopifyCLI::Context
39
39
  include SmartProperties
40
40
  property :spinner, required: true
41
41
 
@@ -1,11 +1,11 @@
1
1
  # frozen_string_literal: true
2
2
  module Theme
3
- class Project < ShopifyCli::ProjectType
3
+ class Project < ShopifyCLI::ProjectType
4
4
  require Project.project_filepath("messages/messages")
5
5
  register_messages(Theme::Messages::MESSAGES)
6
6
  end
7
7
 
8
- class Command < ShopifyCli::ProjectCommands
8
+ class Command < ShopifyCLI::ProjectCommands
9
9
  subcommand :Init, "init", Project.project_filepath("commands/init")
10
10
  subcommand :Serve, "serve", Project.project_filepath("commands/serve")
11
11
  subcommand :Pull, "pull", Project.project_filepath("commands/pull")
@@ -16,7 +16,7 @@ module Theme
16
16
  subcommand :Package, "package", Project.project_filepath("commands/package")
17
17
  subcommand :LanguageServer, "language-server", Project.project_filepath("commands/language_server")
18
18
  end
19
- ShopifyCli::Commands.register("Theme::Command", "theme")
19
+ ShopifyCLI::Commands.register("Theme::Command", "theme")
20
20
 
21
21
  module Forms
22
22
  autoload :ConfirmStore, Project.project_filepath("forms/confirm_store")
@@ -3,8 +3,8 @@ require "theme_check"
3
3
 
4
4
  module Theme
5
5
  class Command
6
- class Check < ShopifyCli::SubCommand
7
- class Options < ShopifyCli::Options
6
+ class Check < ShopifyCLI::SubCommand
7
+ class Options < ShopifyCLI::Options
8
8
  def initialize(theme_check)
9
9
  super()
10
10
  @theme_check = theme_check
@@ -26,7 +26,7 @@ module Theme
26
26
  end
27
27
 
28
28
  def self.help
29
- ShopifyCli::Context.message("theme.check.help", ShopifyCli::TOOL_NAME)
29
+ ShopifyCLI::Context.message("theme.check.help", ShopifyCLI::TOOL_NAME)
30
30
  end
31
31
  end
32
32
  end
@@ -1,10 +1,10 @@
1
1
  # frozen_string_literal: true
2
- require "shopify-cli/theme/theme"
3
- require "shopify-cli/theme/development_theme"
2
+ require "shopify_cli/theme/theme"
3
+ require "shopify_cli/theme/development_theme"
4
4
 
5
5
  module Theme
6
6
  class Command
7
- class Delete < ShopifyCli::SubCommand
7
+ class Delete < ShopifyCLI::SubCommand
8
8
  options do |parser, flags|
9
9
  parser.on("-d", "--development") { flags[:development] = true }
10
10
  parser.on("-a", "--show-all") { flags[:show_all] = true }
@@ -13,9 +13,9 @@ module Theme
13
13
 
14
14
  def call(args, _name)
15
15
  themes = if options.flags[:development]
16
- [ShopifyCli::Theme::DevelopmentTheme.new(@ctx)]
16
+ [ShopifyCLI::Theme::DevelopmentTheme.new(@ctx)]
17
17
  elsif args.any?
18
- args.map { |id| ShopifyCli::Theme::Theme.new(@ctx, id: id) }
18
+ args.map { |id| ShopifyCLI::Theme::Theme.new(@ctx, id: id) }
19
19
  else
20
20
  form = Forms::Select.ask(
21
21
  @ctx,
@@ -38,7 +38,7 @@ module Theme
38
38
  end
39
39
  theme.delete
40
40
  deleted += 1
41
- rescue ShopifyCli::API::APIRequestNotFoundError
41
+ rescue ShopifyCLI::API::APIRequestNotFoundError
42
42
  @ctx.puts(@ctx.message("theme.delete.not_found", theme.id))
43
43
  end
44
44
 
@@ -46,7 +46,7 @@ module Theme
46
46
  end
47
47
 
48
48
  def self.help
49
- ShopifyCli::Context.message("theme.delete.help", ShopifyCli::TOOL_NAME, ShopifyCli::TOOL_NAME)
49
+ ShopifyCLI::Context.message("theme.delete.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
50
50
  end
51
51
 
52
52
  private
@@ -2,7 +2,7 @@
2
2
 
3
3
  module Theme
4
4
  class Command
5
- class Init < ShopifyCli::SubCommand
5
+ class Init < ShopifyCLI::SubCommand
6
6
  options do |parser, flags|
7
7
  parser.on("-u", "--clone-url URL") { |url| flags[:clone_url] = url }
8
8
  end
@@ -16,7 +16,7 @@ module Theme
16
16
  end
17
17
 
18
18
  def self.help
19
- ShopifyCli::Context.message("theme.init.help", ShopifyCli::TOOL_NAME, ShopifyCli::TOOL_NAME)
19
+ ShopifyCLI::Context.message("theme.init.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
20
20
  end
21
21
 
22
22
  private
@@ -26,7 +26,7 @@ module Theme
26
26
  end
27
27
 
28
28
  def clone(url, name)
29
- ShopifyCli::Git.clone(url, name)
29
+ ShopifyCLI::Git.clone(url, name)
30
30
 
31
31
  @ctx.root = File.join(@ctx.root, name)
32
32
 
@@ -3,13 +3,13 @@ require "theme_check"
3
3
 
4
4
  module Theme
5
5
  class Command
6
- class LanguageServer < ShopifyCli::SubCommand
6
+ class LanguageServer < ShopifyCLI::SubCommand
7
7
  def call(*)
8
8
  ThemeCheck::LanguageServer.start
9
9
  end
10
10
 
11
11
  def self.help
12
- ShopifyCli::Context.message("theme.language_server.help", ShopifyCli::TOOL_NAME)
12
+ ShopifyCLI::Context.message("theme.language_server.help", ShopifyCLI::TOOL_NAME)
13
13
  end
14
14
  end
15
15
  end
@@ -4,7 +4,7 @@ require "json"
4
4
 
5
5
  module Theme
6
6
  class Command
7
- class Package < ShopifyCli::SubCommand
7
+ class Package < ShopifyCLI::SubCommand
8
8
  THEME_DIRECTORIES = %w[
9
9
  assets
10
10
  config
@@ -25,7 +25,7 @@ module Theme
25
25
  end
26
26
 
27
27
  def self.help
28
- ShopifyCli::Context.message("theme.package.help", ShopifyCli::TOOL_NAME, ShopifyCli::TOOL_NAME)
28
+ ShopifyCLI::Context.message("theme.package.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
29
29
  end
30
30
 
31
31
  private
@@ -1,16 +1,16 @@
1
1
  # frozen_string_literal: true
2
- require "shopify-cli/theme/theme"
2
+ require "shopify_cli/theme/theme"
3
3
 
4
4
  module Theme
5
5
  class Command
6
- class Publish < ShopifyCli::SubCommand
6
+ class Publish < ShopifyCLI::SubCommand
7
7
  options do |parser, flags|
8
8
  parser.on("-f", "--force") { flags[:force] = true }
9
9
  end
10
10
 
11
11
  def call(args, *)
12
12
  theme = if (theme_id = args.first)
13
- ShopifyCli::Theme::Theme.new(@ctx, id: theme_id)
13
+ ShopifyCLI::Theme::Theme.new(@ctx, id: theme_id)
14
14
  else
15
15
  form = Forms::Select.ask(
16
16
  @ctx,
@@ -31,12 +31,12 @@ module Theme
31
31
 
32
32
  theme.publish
33
33
  @ctx.done(@ctx.message("theme.publish.done", theme.preview_url))
34
- rescue ShopifyCli::API::APIRequestNotFoundError
34
+ rescue ShopifyCLI::API::APIRequestNotFoundError
35
35
  @ctx.puts(@ctx.message("theme.publish.not_found", theme.id))
36
36
  end
37
37
 
38
38
  def self.help
39
- ShopifyCli::Context.message("theme.publish.help", ShopifyCli::TOOL_NAME, ShopifyCli::TOOL_NAME)
39
+ ShopifyCLI::Context.message("theme.publish.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
40
40
  end
41
41
  end
42
42
  end
@@ -1,14 +1,18 @@
1
1
  # frozen_string_literal: true
2
- require "shopify-cli/theme/theme"
3
- require "shopify-cli/theme/ignore_filter"
4
- require "shopify-cli/theme/syncer"
2
+ require "shopify_cli/theme/theme"
3
+ require "shopify_cli/theme/ignore_filter"
4
+ require "shopify_cli/theme/syncer"
5
5
 
6
6
  module Theme
7
7
  class Command
8
- class Pull < ShopifyCli::SubCommand
8
+ class Pull < ShopifyCLI::SubCommand
9
9
  options do |parser, flags|
10
10
  parser.on("-n", "--nodelete") { flags[:nodelete] = true }
11
11
  parser.on("-i", "--themeid=ID") { |theme_id| flags[:theme_id] = theme_id }
12
+ parser.on("-x", "--ignore=PATTERN") do |pattern|
13
+ flags[:ignores] ||= []
14
+ flags[:ignores] << pattern
15
+ end
12
16
  end
13
17
 
14
18
  def call(args, _name)
@@ -16,7 +20,7 @@ module Theme
16
20
  delete = !options.flags[:nodelete]
17
21
 
18
22
  theme = if (theme_id = options.flags[:theme_id])
19
- ShopifyCli::Theme::Theme.new(@ctx, root: root, id: theme_id)
23
+ ShopifyCLI::Theme::Theme.new(@ctx, root: root, id: theme_id)
20
24
  else
21
25
  form = Forms::Select.ask(
22
26
  @ctx,
@@ -28,15 +32,17 @@ module Theme
28
32
  form.theme
29
33
  end
30
34
 
31
- ignore_filter = ShopifyCli::Theme::IgnoreFilter.from_path(root)
32
- syncer = ShopifyCli::Theme::Syncer.new(@ctx, theme: theme, ignore_filter: ignore_filter)
35
+ ignore_filter = ShopifyCLI::Theme::IgnoreFilter.from_path(root)
36
+ ignore_filter.add_patterns(options.flags[:ignores]) if options.flags[:ignores]
37
+
38
+ syncer = ShopifyCLI::Theme::Syncer.new(@ctx, theme: theme, ignore_filter: ignore_filter)
33
39
  begin
34
40
  syncer.start_threads
35
41
  CLI::UI::Frame.open(@ctx.message("theme.pull.pulling", theme.name, theme.id, theme.shop)) do
36
42
  UI::SyncProgressBar.new(syncer).progress(:download_theme!, delete: delete)
37
43
  end
38
44
  @ctx.done(@ctx.message("theme.pull.done"))
39
- rescue ShopifyCli::API::APIRequestNotFoundError
45
+ rescue ShopifyCLI::API::APIRequestNotFoundError
40
46
  @ctx.abort(@ctx.message("theme.pull.theme_not_found", theme.id))
41
47
  ensure
42
48
  syncer.shutdown
@@ -44,7 +50,7 @@ module Theme
44
50
  end
45
51
 
46
52
  def self.help
47
- ShopifyCli::Context.message("theme.pull.help", ShopifyCli::TOOL_NAME, ShopifyCli::TOOL_NAME)
53
+ ShopifyCLI::Context.message("theme.pull.help", ShopifyCLI::TOOL_NAME, ShopifyCLI::TOOL_NAME)
48
54
  end
49
55
  end
50
56
  end