shopify-cli 1.4.0 → 1.7.1
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.
- checksums.yaml +4 -4
- data/.github/CODEOWNERS +2 -2
- data/.github/CONTRIBUTING.md +9 -1
- data/.github/PULL_REQUEST_TEMPLATE.md +10 -1
- data/.github/workflows/release.yml +61 -0
- data/.github/workflows/triage.yml +22 -0
- data/.rubocop.yml +56 -7
- data/.rubocop_todo.yml +4 -13
- data/.travis.yml +1 -0
- data/CHANGELOG.md +27 -1
- data/Gemfile +12 -10
- data/Gemfile.lock +33 -31
- data/README.md +39 -7
- data/RELEASING.md +5 -27
- data/Rakefile +32 -28
- data/bin/load_shopify.rb +6 -6
- data/bin/shopify +2 -2
- data/dev.yml +2 -2
- data/docs/_config.yml +1 -18
- data/docs/app/node/commands/index.md +2 -80
- data/docs/app/node/index.md +2 -33
- data/docs/app/rails/commands/index.md +2 -78
- data/docs/app/rails/index.md +2 -34
- data/docs/core/index.md +2 -84
- data/docs/getting-started/index.md +2 -25
- data/docs/getting-started/install/index.md +1 -118
- data/docs/getting-started/migrate/index.md +2 -94
- data/docs/getting-started/uninstall/index.md +2 -35
- data/docs/getting-started/upgrade/index.md +2 -39
- data/docs/help/start-app/index.md +2 -4
- data/docs/index.md +2 -24
- data/ext/shopify-cli/extconf.rb +7 -7
- data/install.sh +1 -1
- data/lib/docgen/markdown.rb +11 -11
- data/lib/{project_types/extension/graphql → graphql}/get_app_by_api_key.graphql +0 -0
- data/lib/project_types/extension/cli.rb +64 -47
- data/lib/project_types/extension/commands/build.rb +3 -3
- data/lib/project_types/extension/commands/create.rb +16 -9
- data/lib/project_types/extension/commands/extension_command.rb +8 -5
- data/lib/project_types/extension/commands/push.rb +8 -8
- data/lib/project_types/extension/commands/register.rb +19 -30
- data/lib/project_types/extension/commands/serve.rb +23 -3
- data/lib/project_types/extension/commands/tunnel.rb +12 -12
- data/lib/project_types/extension/extension_project.rb +4 -4
- data/lib/project_types/extension/extension_project_keys.rb +4 -4
- data/lib/project_types/extension/features/argo.rb +117 -0
- data/lib/project_types/extension/features/argo_config.rb +5 -5
- data/lib/project_types/extension/features/argo_dependencies.rb +5 -5
- data/lib/project_types/extension/features/argo_setup.rb +2 -2
- data/lib/project_types/extension/features/argo_setup_steps.rb +4 -4
- data/lib/project_types/extension/forms/create.rb +28 -34
- data/lib/project_types/extension/forms/questions/ask_app.rb +53 -0
- data/lib/project_types/extension/forms/questions/ask_name.rb +40 -0
- data/lib/project_types/extension/forms/questions/ask_type.rb +36 -0
- data/lib/project_types/extension/messages/messages.rb +53 -52
- data/lib/project_types/extension/models/lazy_specification_handler.rb +12 -0
- data/lib/project_types/extension/models/specification.rb +35 -0
- data/lib/project_types/extension/models/specification_handlers/checkout_post_purchase.rb +19 -0
- data/lib/project_types/extension/models/specification_handlers/default.rb +67 -0
- data/lib/project_types/extension/models/specifications.rb +77 -0
- data/lib/project_types/extension/tasks/configure_features.rb +52 -0
- data/lib/project_types/extension/tasks/converters/app_converter.rb +6 -6
- data/lib/project_types/extension/tasks/converters/registration_converter.rb +6 -6
- data/lib/project_types/extension/tasks/converters/validation_error_converter.rb +4 -4
- data/lib/project_types/extension/tasks/converters/version_converter.rb +7 -7
- data/lib/project_types/extension/tasks/create_extension.rb +4 -4
- data/lib/project_types/extension/tasks/fetch_specifications.rb +38 -0
- data/lib/project_types/extension/tasks/get_app.rb +4 -4
- data/lib/project_types/extension/tasks/get_apps.rb +3 -3
- data/lib/project_types/extension/tasks/update_draft.rb +4 -4
- data/lib/project_types/extension/tasks/user_errors.rb +4 -4
- data/lib/project_types/node/cli.rb +19 -16
- data/lib/project_types/node/commands/connect.rb +15 -0
- data/lib/project_types/node/commands/create.rb +44 -41
- data/lib/project_types/node/commands/deploy.rb +4 -4
- data/lib/project_types/node/commands/deploy/heroku.rb +24 -24
- data/lib/project_types/node/commands/generate.rb +9 -18
- data/lib/project_types/node/commands/open.rb +2 -2
- data/lib/project_types/node/commands/populate.rb +6 -6
- data/lib/project_types/node/commands/populate/customer.rb +5 -5
- data/lib/project_types/node/commands/populate/draft_order.rb +5 -5
- data/lib/project_types/node/commands/populate/product.rb +5 -5
- data/lib/project_types/node/commands/serve.rb +9 -9
- data/lib/project_types/node/commands/tunnel.rb +7 -7
- data/lib/project_types/node/forms/create.rb +7 -7
- data/lib/project_types/node/messages/messages.rb +19 -53
- data/lib/project_types/rails/cli.rb +21 -18
- data/lib/project_types/rails/commands/connect.rb +15 -0
- data/lib/project_types/rails/commands/create.rb +58 -57
- data/lib/project_types/rails/commands/deploy.rb +4 -4
- data/lib/project_types/rails/commands/deploy/heroku.rb +30 -30
- data/lib/project_types/rails/commands/generate.rb +7 -7
- data/lib/project_types/rails/commands/generate/webhook.rb +6 -6
- data/lib/project_types/rails/commands/open.rb +2 -2
- data/lib/project_types/rails/commands/populate.rb +6 -6
- data/lib/project_types/rails/commands/populate/customer.rb +5 -5
- data/lib/project_types/rails/commands/populate/draft_order.rb +5 -5
- data/lib/project_types/rails/commands/populate/product.rb +5 -5
- data/lib/project_types/rails/commands/serve.rb +11 -11
- data/lib/project_types/rails/commands/tunnel.rb +7 -7
- data/lib/project_types/rails/forms/create.rb +24 -24
- data/lib/project_types/rails/gem.rb +24 -24
- data/lib/project_types/rails/messages/messages.rb +12 -9
- data/lib/project_types/rails/ruby.rb +2 -2
- data/lib/project_types/script/cli.rb +44 -38
- data/lib/project_types/script/commands/create.rb +15 -10
- data/lib/project_types/script/commands/disable.rb +3 -3
- data/lib/project_types/script/commands/enable.rb +19 -9
- data/lib/project_types/script/commands/push.rb +10 -17
- data/lib/project_types/script/config/extension_points.yml +17 -12
- data/lib/project_types/script/errors.rb +22 -0
- data/lib/project_types/script/forms/create.rb +29 -5
- data/lib/project_types/script/graphql/app_script_update_or_create.graphql +12 -1
- data/lib/project_types/script/layers/application/build_script.rb +19 -19
- data/lib/project_types/script/layers/application/create_script.rb +41 -12
- data/lib/project_types/script/layers/application/disable_script.rb +2 -2
- data/lib/project_types/script/layers/application/enable_script.rb +2 -2
- data/lib/project_types/script/layers/application/extension_points.rb +24 -0
- data/lib/project_types/script/layers/application/project_dependencies.rb +4 -4
- data/lib/project_types/script/layers/application/push_script.rb +15 -18
- data/lib/project_types/script/layers/domain/config_ui.rb +16 -0
- data/lib/project_types/script/layers/domain/errors.rb +23 -0
- data/lib/project_types/script/layers/domain/extension_point.rb +62 -7
- data/lib/project_types/script/layers/domain/metadata.rb +55 -0
- data/lib/project_types/script/layers/domain/push_package.rb +29 -6
- data/lib/project_types/script/layers/infrastructure/assemblyscript_project_creator.rb +19 -55
- data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +49 -18
- data/lib/project_types/script/layers/infrastructure/config_ui_repository.rb +46 -0
- data/lib/project_types/script/layers/infrastructure/errors.rb +37 -1
- data/lib/project_types/script/layers/infrastructure/extension_point_repository.rb +12 -6
- data/lib/project_types/script/layers/infrastructure/project_creator.rb +2 -1
- data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +20 -13
- data/lib/project_types/script/layers/infrastructure/rust_project_creator.rb +72 -0
- data/lib/project_types/script/layers/infrastructure/rust_task_runner.rb +59 -0
- data/lib/project_types/script/layers/infrastructure/script_service.rb +39 -17
- data/lib/project_types/script/layers/infrastructure/task_runner.rb +4 -3
- data/lib/project_types/script/messages/messages.rb +79 -10
- data/lib/project_types/script/script_project.rb +26 -16
- data/lib/project_types/script/ui/error_handler.rb +141 -45
- data/lib/project_types/script/ui/printing_spinner.rb +1 -1
- data/lib/project_types/script/ui/strict_spinner.rb +1 -1
- data/lib/project_types/theme/cli.rb +40 -0
- data/lib/project_types/theme/commands/connect.rb +54 -0
- data/lib/project_types/theme/commands/create.rb +48 -0
- data/lib/project_types/theme/commands/deploy.rb +38 -0
- data/lib/project_types/theme/commands/generate.rb +20 -0
- data/lib/project_types/theme/commands/generate/env.rb +79 -0
- data/lib/project_types/theme/commands/push.rb +55 -0
- data/lib/project_types/theme/commands/serve.rb +31 -0
- data/lib/project_types/theme/forms/connect.rb +34 -0
- data/lib/project_types/theme/forms/create.rb +22 -0
- data/lib/project_types/theme/messages/messages.rb +147 -0
- data/lib/project_types/theme/tasks/ensure_themekit_installed.rb +78 -0
- data/lib/project_types/theme/themekit.rb +113 -0
- data/lib/rubygems_plugin.rb +3 -3
- data/lib/shopify-cli/admin_api.rb +52 -12
- data/lib/shopify-cli/admin_api/populate_resource_command.rb +17 -17
- data/lib/shopify-cli/admin_api/schema.rb +3 -3
- data/lib/shopify-cli/api.rb +36 -31
- data/lib/shopify-cli/command.rb +1 -1
- data/lib/shopify-cli/commands.rb +9 -9
- data/lib/shopify-cli/commands/config.rb +28 -28
- data/lib/shopify-cli/commands/connect.rb +35 -18
- data/lib/shopify-cli/commands/create.rb +5 -5
- data/lib/shopify-cli/commands/help.rb +6 -6
- data/lib/shopify-cli/commands/logout.rb +3 -3
- data/lib/shopify-cli/commands/system.rb +33 -33
- data/lib/shopify-cli/commands/version.rb +2 -2
- data/lib/shopify-cli/context.rb +43 -22
- data/lib/shopify-cli/core.rb +4 -4
- data/lib/shopify-cli/core/entry_point.rb +5 -5
- data/lib/shopify-cli/core/executor.rb +1 -1
- data/lib/shopify-cli/core/help_resolver.rb +2 -2
- data/lib/shopify-cli/core/monorail.rb +21 -19
- data/lib/shopify-cli/db.rb +2 -2
- data/lib/shopify-cli/feature.rb +1 -3
- data/lib/shopify-cli/form.rb +1 -1
- data/lib/shopify-cli/git.rb +17 -17
- data/lib/shopify-cli/helpers.rb +1 -1
- data/lib/shopify-cli/helpers/haikunator.rb +1 -1
- data/lib/shopify-cli/heroku.rb +28 -28
- data/lib/shopify-cli/http_request.rb +21 -9
- data/lib/shopify-cli/js_deps.rb +13 -13
- data/lib/shopify-cli/js_system.rb +5 -5
- data/lib/shopify-cli/lazy_delegator.rb +55 -0
- data/lib/shopify-cli/messages/messages.rb +21 -10
- data/lib/shopify-cli/method_object.rb +104 -0
- data/lib/shopify-cli/oauth.rb +25 -25
- data/lib/shopify-cli/oauth/servlet.rb +9 -9
- data/lib/shopify-cli/options.rb +3 -3
- data/lib/shopify-cli/packager.rb +24 -24
- data/lib/shopify-cli/partners_api.rb +38 -16
- data/lib/shopify-cli/partners_api/organizations.rb +10 -10
- data/lib/shopify-cli/process_supervision.rb +8 -8
- data/lib/shopify-cli/project.rb +27 -23
- data/lib/shopify-cli/project_type.rb +21 -5
- data/lib/shopify-cli/resolve_constant.rb +25 -0
- data/lib/shopify-cli/resources.rb +1 -1
- data/lib/shopify-cli/resources/env_file.rb +9 -9
- data/lib/shopify-cli/result.rb +432 -0
- data/lib/shopify-cli/shopifolk.rb +35 -18
- data/lib/shopify-cli/sub_command.rb +1 -1
- data/lib/shopify-cli/task.rb +9 -1
- data/lib/shopify-cli/tasks.rb +7 -7
- data/lib/shopify-cli/tasks/create_api_client.rb +17 -6
- data/lib/shopify-cli/tasks/ensure_dev_store.rb +11 -11
- data/lib/shopify-cli/tasks/ensure_env.rb +18 -15
- data/lib/shopify-cli/tasks/ensure_loopback_url.rb +4 -4
- data/lib/shopify-cli/tasks/select_org_and_shop.rb +29 -24
- data/lib/shopify-cli/tasks/update_dashboard_urls.rb +10 -10
- data/lib/shopify-cli/transform_data_structure.rb +86 -0
- data/lib/shopify-cli/tunnel.rb +36 -30
- data/lib/shopify-cli/version.rb +1 -1
- data/lib/shopify_cli.rb +57 -52
- data/shopify-cli.gemspec +6 -6
- data/shopify.fish +1 -1
- data/shopify.sh +1 -1
- data/vendor/deps/cli-kit/REVISION +1 -1
- data/vendor/deps/cli-kit/lib/cli/kit/logger.rb +2 -2
- data/vendor/deps/cli-kit/lib/cli/kit/system.rb +3 -3
- data/vendor/deps/cli-ui/REVISION +1 -1
- data/vendor/deps/cli-ui/lib/cli/ui.rb +26 -22
- data/vendor/deps/cli-ui/lib/cli/ui/ansi.rb +4 -6
- data/vendor/deps/cli-ui/lib/cli/ui/frame.rb +3 -3
- data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_stack.rb +8 -9
- data/vendor/deps/cli-ui/lib/cli/ui/frame/frame_style.rb +1 -1
- data/vendor/deps/cli-ui/lib/cli/ui/glyph.rb +1 -0
- data/vendor/deps/cli-ui/lib/cli/ui/printer.rb +15 -3
- data/vendor/deps/cli-ui/lib/cli/ui/prompt/interactive_options.rb +4 -11
- data/vendor/deps/cli-ui/lib/cli/ui/spinner.rb +3 -5
- data/vendor/deps/cli-ui/lib/cli/ui/terminal.rb +10 -10
- data/vendor/deps/cli-ui/lib/cli/ui/version.rb +1 -1
- data/vendor/deps/cli-ui/lib/cli/ui/wrap.rb +56 -0
- data/vendor/deps/webrick/.gitignore +9 -0
- data/vendor/deps/webrick/Gemfile +3 -0
- data/vendor/deps/webrick/LICENSE.txt +22 -0
- data/vendor/deps/webrick/README.md +61 -0
- data/vendor/deps/webrick/Rakefile +10 -0
- data/vendor/deps/webrick/lib/webrick.rb +232 -0
- data/vendor/deps/webrick/lib/webrick/accesslog.rb +157 -0
- data/vendor/deps/webrick/lib/webrick/cgi.rb +313 -0
- data/vendor/deps/webrick/lib/webrick/compat.rb +36 -0
- data/vendor/deps/webrick/lib/webrick/config.rb +158 -0
- data/vendor/deps/webrick/lib/webrick/cookie.rb +172 -0
- data/vendor/deps/webrick/lib/webrick/htmlutils.rb +30 -0
- data/vendor/deps/webrick/lib/webrick/httpauth.rb +96 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/authenticator.rb +117 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/basicauth.rb +116 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/digestauth.rb +395 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/htdigest.rb +132 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/htgroup.rb +97 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/htpasswd.rb +158 -0
- data/vendor/deps/webrick/lib/webrick/httpauth/userdb.rb +53 -0
- data/vendor/deps/webrick/lib/webrick/httpproxy.rb +354 -0
- data/vendor/deps/webrick/lib/webrick/httprequest.rb +636 -0
- data/vendor/deps/webrick/lib/webrick/httpresponse.rb +564 -0
- data/vendor/deps/webrick/lib/webrick/https.rb +152 -0
- data/vendor/deps/webrick/lib/webrick/httpserver.rb +294 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet.rb +23 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet/abstract.rb +152 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet/cgi_runner.rb +47 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet/cgihandler.rb +126 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet/erbhandler.rb +88 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet/filehandler.rb +552 -0
- data/vendor/deps/webrick/lib/webrick/httpservlet/prochandler.rb +47 -0
- data/vendor/deps/webrick/lib/webrick/httpstatus.rb +194 -0
- data/vendor/deps/webrick/lib/webrick/httputils.rb +512 -0
- data/vendor/deps/webrick/lib/webrick/httpversion.rb +76 -0
- data/vendor/deps/webrick/lib/webrick/log.rb +156 -0
- data/vendor/deps/webrick/lib/webrick/server.rb +381 -0
- data/vendor/deps/webrick/lib/webrick/ssl.rb +215 -0
- data/vendor/deps/webrick/lib/webrick/utils.rb +265 -0
- data/vendor/deps/webrick/lib/webrick/version.rb +18 -0
- data/vendor/deps/webrick/webrick.gemspec +74 -0
- data/vendor/gen/template/bin/update-deps +9 -9
- metadata +83 -29
- data/docs/Gemfile +0 -5
- data/docs/Gemfile.lock +0 -258
- data/docs/_data/nav.yml +0 -35
- data/docs/_includes/footer.html +0 -15
- data/docs/_includes/head.html +0 -19
- data/docs/_includes/sidebar_nav.html +0 -22
- data/docs/_includes/toc.html +0 -112
- data/docs/_layouts/default.html +0 -79
- data/docs/css/docs.css +0 -157
- data/docs/images/header.png +0 -0
- data/docs/installing-ruby.md +0 -28
- data/lib/project_types/extension/features/argo/admin.rb +0 -20
- data/lib/project_types/extension/features/argo/base.rb +0 -129
- data/lib/project_types/extension/features/argo/checkout.rb +0 -20
- data/lib/project_types/extension/forms/register.rb +0 -47
- data/lib/project_types/extension/models/type.rb +0 -81
- data/lib/project_types/extension/models/types/checkout_post_purchase.rb +0 -23
- data/lib/project_types/extension/models/types/product_subscription.rb +0 -24
- data/lib/project_types/node/commands/generate/billing.rb +0 -39
- data/lib/project_types/node/commands/generate/page.rb +0 -59
- data/lib/project_types/node/commands/generate/webhook.rb +0 -37
- data/lib/project_types/script/layers/domain/script.rb +0 -18
- data/lib/project_types/script/layers/infrastructure/assemblyscript_tsconfig.rb +0 -38
- data/lib/project_types/script/layers/infrastructure/script_repository.rb +0 -59
- data/lib/project_types/script/templates/ts/as-pect.config.js +0 -27
- data/lib/project_types/script/templates/ts/as-pect.d.ts +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "shopify_cli"
|
|
2
2
|
|
|
3
3
|
module ShopifyCli
|
|
4
4
|
module Commands
|
|
@@ -10,11 +10,11 @@ module ShopifyCli
|
|
|
10
10
|
|
|
11
11
|
def call(args, command_name)
|
|
12
12
|
unless args.empty?
|
|
13
|
-
@ctx.puts(@ctx.message(
|
|
13
|
+
@ctx.puts(@ctx.message("core.create.error.invalid_app_type", args[0]))
|
|
14
14
|
return @ctx.puts(self.class.help)
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
type_name = CLI::UI::Prompt.ask(@ctx.message(
|
|
17
|
+
type_name = CLI::UI::Prompt.ask(@ctx.message("core.create.project_type_select")) do |handler|
|
|
18
18
|
self.class.all_visible_type.each do |type|
|
|
19
19
|
handler.option(type.project_name) { type.project_type }
|
|
20
20
|
end
|
|
@@ -22,7 +22,7 @@ module ShopifyCli
|
|
|
22
22
|
|
|
23
23
|
klass = ProjectType.load_type(type_name).create_command
|
|
24
24
|
klass.ctx = @ctx
|
|
25
|
-
klass.call(args, command_name,
|
|
25
|
+
klass.call(args, command_name, "create")
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def self.all_visible_type
|
|
@@ -33,7 +33,7 @@ module ShopifyCli
|
|
|
33
33
|
|
|
34
34
|
def self.help
|
|
35
35
|
project_types = all_visible_type.map(&:project_type).sort.join(" | ")
|
|
36
|
-
ShopifyCli::Context.message(
|
|
36
|
+
ShopifyCli::Context.message("core.create.help", ShopifyCli::TOOL_NAME, project_types)
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
def self.extended_help
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "shopify_cli"
|
|
2
2
|
|
|
3
3
|
module ShopifyCli
|
|
4
4
|
module Commands
|
|
5
5
|
class Help < ShopifyCli::Command
|
|
6
6
|
def call(args, _name)
|
|
7
7
|
command = args.shift
|
|
8
|
-
if command && command !=
|
|
8
|
+
if command && command != "help"
|
|
9
9
|
if Registry.exist?(command)
|
|
10
10
|
cmd, _ = Registry.lookup_command(command)
|
|
11
11
|
subcmd, _ = cmd.subcommand_registry.lookup_command(args.first)
|
|
@@ -16,15 +16,15 @@ module ShopifyCli
|
|
|
16
16
|
end
|
|
17
17
|
return
|
|
18
18
|
else
|
|
19
|
-
@ctx.puts(@ctx.message(
|
|
19
|
+
@ctx.puts(@ctx.message("core.help.error.command_not_found", command))
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
-
preamble = @ctx.message(
|
|
23
|
+
preamble = @ctx.message("core.help.preamble", ShopifyCli::TOOL_NAME)
|
|
24
24
|
@ctx.puts(preamble)
|
|
25
25
|
|
|
26
26
|
core_commands.each do |name, klass|
|
|
27
|
-
next if name ==
|
|
27
|
+
next if name == "help"
|
|
28
28
|
@ctx.puts("{{command:#{name}}}: #{klass.help}\n")
|
|
29
29
|
end
|
|
30
30
|
|
|
@@ -34,7 +34,7 @@ module ShopifyCli
|
|
|
34
34
|
@ctx.puts("{{bold:Available commands for #{project_type_name} projects:}}\n\n")
|
|
35
35
|
|
|
36
36
|
local_commands.each do |name, klass|
|
|
37
|
-
next if name ==
|
|
37
|
+
next if name == "help"
|
|
38
38
|
@ctx.puts("{{command:#{name}}}: #{klass.help}\n")
|
|
39
39
|
end
|
|
40
40
|
end
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "shopify_cli"
|
|
2
2
|
|
|
3
3
|
module ShopifyCli
|
|
4
4
|
module Commands
|
|
@@ -12,11 +12,11 @@ module ShopifyCli
|
|
|
12
12
|
LOGIN_TOKENS.each do |token|
|
|
13
13
|
ShopifyCli::DB.del(token) if ShopifyCli::DB.exists?(token)
|
|
14
14
|
end
|
|
15
|
-
@ctx.puts(@ctx.message(
|
|
15
|
+
@ctx.puts(@ctx.message("core.logout.success"))
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
def self.help
|
|
19
|
-
ShopifyCli::Context.message(
|
|
19
|
+
ShopifyCli::Context.message("core.logout.help", ShopifyCli::TOOL_NAME)
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
22
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
require
|
|
2
|
-
require
|
|
1
|
+
require "shopify_cli"
|
|
2
|
+
require "rbconfig"
|
|
3
3
|
|
|
4
4
|
module ShopifyCli
|
|
5
5
|
module Commands
|
|
@@ -9,13 +9,13 @@ module ShopifyCli
|
|
|
9
9
|
def call(args, _name)
|
|
10
10
|
show_all_details = false
|
|
11
11
|
flag = args.shift
|
|
12
|
-
if flag && flag !=
|
|
13
|
-
@ctx.puts(@ctx.message(
|
|
12
|
+
if flag && flag != "all"
|
|
13
|
+
@ctx.puts(@ctx.message("core.system.error.unknown_option", flag))
|
|
14
14
|
@ctx.puts("\n" + self.class.help)
|
|
15
15
|
return
|
|
16
16
|
end
|
|
17
17
|
|
|
18
|
-
show_all_details = true if flag ==
|
|
18
|
+
show_all_details = true if flag == "all"
|
|
19
19
|
|
|
20
20
|
display_environment if show_all_details
|
|
21
21
|
|
|
@@ -27,7 +27,7 @@ module ShopifyCli
|
|
|
27
27
|
end
|
|
28
28
|
|
|
29
29
|
def self.help
|
|
30
|
-
ShopifyCli::Context.message(
|
|
30
|
+
ShopifyCli::Context.message("core.system.help", ShopifyCli::TOOL_NAME)
|
|
31
31
|
end
|
|
32
32
|
|
|
33
33
|
private
|
|
@@ -47,14 +47,14 @@ module ShopifyCli
|
|
|
47
47
|
|
|
48
48
|
cli_constants += cli_constants_extra if show_all_details
|
|
49
49
|
|
|
50
|
-
@ctx.puts(@ctx.message(
|
|
50
|
+
@ctx.puts(@ctx.message("core.system.header"))
|
|
51
51
|
cli_constants.each do |s|
|
|
52
|
-
@ctx.puts(" " + @ctx.message(
|
|
52
|
+
@ctx.puts(" " + @ctx.message("core.system.const", s, ShopifyCli.const_get(s.to_sym)) + "\n")
|
|
53
53
|
end
|
|
54
54
|
|
|
55
55
|
if show_all_details
|
|
56
56
|
cli_path_methods.each do |m|
|
|
57
|
-
@ctx.puts(" " + @ctx.message(
|
|
57
|
+
@ctx.puts(" " + @ctx.message("core.system.const", m.upcase, ShopifyCli.send(m)) + "\n")
|
|
58
58
|
end
|
|
59
59
|
end
|
|
60
60
|
end
|
|
@@ -62,55 +62,55 @@ module ShopifyCli
|
|
|
62
62
|
def display_cli_ruby(_show_all_details)
|
|
63
63
|
rbconfig_constants = %w(host RUBY_VERSION_NAME)
|
|
64
64
|
|
|
65
|
-
@ctx.puts("\n" + @ctx.message(
|
|
65
|
+
@ctx.puts("\n" + @ctx.message("core.system.ruby_header", RbConfig.ruby))
|
|
66
66
|
rbconfig_constants.each do |s|
|
|
67
|
-
@ctx.puts(" " + @ctx.message(
|
|
67
|
+
@ctx.puts(" " + @ctx.message("core.system.rb_config", RbConfig::CONFIG[s], s))
|
|
68
68
|
end
|
|
69
69
|
end
|
|
70
70
|
|
|
71
71
|
def display_utility_commands(_show_all_details)
|
|
72
72
|
commands = %w(git curl tar)
|
|
73
73
|
|
|
74
|
-
@ctx.puts("\n" + @ctx.message(
|
|
74
|
+
@ctx.puts("\n" + @ctx.message("core.system.command_header"))
|
|
75
75
|
commands.each do |s|
|
|
76
76
|
cmd_path = @ctx.which(s)
|
|
77
77
|
|
|
78
78
|
if !cmd_path.nil?
|
|
79
|
-
@ctx.puts(" " + @ctx.message(
|
|
79
|
+
@ctx.puts(" " + @ctx.message("core.system.command_with_path", s, cmd_path))
|
|
80
80
|
else
|
|
81
|
-
@ctx.puts(" " + @ctx.message(
|
|
81
|
+
@ctx.puts(" " + @ctx.message("core.system.command_not_found", s))
|
|
82
82
|
end
|
|
83
83
|
end
|
|
84
84
|
end
|
|
85
85
|
|
|
86
86
|
def display_ngrok
|
|
87
|
-
ngrok_location = File.join(ShopifyCli.cache_dir, @ctx.
|
|
87
|
+
ngrok_location = File.join(ShopifyCli.cache_dir, "ngrok#{@ctx.executable_file_extension}")
|
|
88
88
|
if File.exist?(ngrok_location)
|
|
89
|
-
@ctx.puts(" " + @ctx.message(
|
|
89
|
+
@ctx.puts(" " + @ctx.message("core.system.ngrok_available", ngrok_location))
|
|
90
90
|
else
|
|
91
|
-
@ctx.puts(" " + @ctx.message(
|
|
91
|
+
@ctx.puts(" " + @ctx.message("core.system.ngrok_not_available"))
|
|
92
92
|
end
|
|
93
93
|
end
|
|
94
94
|
|
|
95
95
|
def display_project_commands(_show_all_details)
|
|
96
96
|
case Project.current_project_type
|
|
97
97
|
when :node
|
|
98
|
-
display_project(
|
|
98
|
+
display_project("Node.js", %w(npm node yarn))
|
|
99
99
|
when :rails
|
|
100
|
-
display_project(
|
|
100
|
+
display_project("Rails", %w(gem rails rake ruby))
|
|
101
101
|
end
|
|
102
102
|
end
|
|
103
103
|
|
|
104
104
|
def display_project(project_type, commands)
|
|
105
|
-
@ctx.puts("\n" + @ctx.message(
|
|
105
|
+
@ctx.puts("\n" + @ctx.message("core.system.project.header", project_type))
|
|
106
106
|
commands.each do |s|
|
|
107
107
|
cmd_path = @ctx.which(s)
|
|
108
108
|
if !cmd_path.nil?
|
|
109
|
-
version_output, _ = @ctx.capture2e(s,
|
|
109
|
+
version_output, _ = @ctx.capture2e(s, "--version")
|
|
110
110
|
version = version_output.match(/(\d+\.[^\s]+)/)[0]
|
|
111
|
-
@ctx.puts(" " + @ctx.message(
|
|
111
|
+
@ctx.puts(" " + @ctx.message("core.system.project.command_with_path", s, cmd_path.strip, version.strip))
|
|
112
112
|
else
|
|
113
|
-
@ctx.puts(" " + @ctx.message(
|
|
113
|
+
@ctx.puts(" " + @ctx.message("core.system.project.command_not_found", s))
|
|
114
114
|
end
|
|
115
115
|
end
|
|
116
116
|
display_ngrok
|
|
@@ -118,25 +118,25 @@ module ShopifyCli
|
|
|
118
118
|
end
|
|
119
119
|
|
|
120
120
|
def display_project_environment
|
|
121
|
-
@ctx.puts("\n " + @ctx.message(
|
|
122
|
-
if File.exist?(
|
|
121
|
+
@ctx.puts("\n " + @ctx.message("core.system.project.env_header"))
|
|
122
|
+
if File.exist?("./.env")
|
|
123
123
|
Project.current.env.to_h.each do |k, v|
|
|
124
|
-
display_value = if v.nil? || v.strip ==
|
|
125
|
-
@ctx.message(
|
|
124
|
+
display_value = if v.nil? || v.strip == ""
|
|
125
|
+
@ctx.message("core.system.project.env_not_set")
|
|
126
126
|
else
|
|
127
127
|
k.match(/^SHOPIFY_API/) ? "********" : v
|
|
128
128
|
end
|
|
129
|
-
@ctx.puts(" " + @ctx.message(
|
|
129
|
+
@ctx.puts(" " + @ctx.message("core.system.project.env", k, display_value))
|
|
130
130
|
end
|
|
131
131
|
else
|
|
132
|
-
@ctx.puts(" " + @ctx.message(
|
|
132
|
+
@ctx.puts(" " + @ctx.message("core.system.project.no_env"))
|
|
133
133
|
end
|
|
134
134
|
end
|
|
135
135
|
|
|
136
136
|
def display_environment
|
|
137
|
-
@ctx.puts(@ctx.message(
|
|
137
|
+
@ctx.puts(@ctx.message("core.system.environment_header"))
|
|
138
138
|
%w(TERM SHELL PATH USING_SHOPIFY_CLI LANG).each do |k|
|
|
139
|
-
@ctx.puts(" " + @ctx.message(
|
|
139
|
+
@ctx.puts(" " + @ctx.message("core.system.env", k, ENV[k])) unless ENV[k].nil?
|
|
140
140
|
end
|
|
141
141
|
@ctx.puts("")
|
|
142
142
|
end
|
|
@@ -144,8 +144,8 @@ module ShopifyCli
|
|
|
144
144
|
def display_shopify_staff_identity
|
|
145
145
|
is_shopifolk = ShopifyCli::Shopifolk.check
|
|
146
146
|
if is_shopifolk
|
|
147
|
-
@ctx.puts("\n" + @ctx.message(
|
|
148
|
-
@ctx.puts(" " + @ctx.message(
|
|
147
|
+
@ctx.puts("\n" + @ctx.message("core.system.identity_header"))
|
|
148
|
+
@ctx.puts(" " + @ctx.message("core.system.identity_is_shopifolk"))
|
|
149
149
|
end
|
|
150
150
|
end
|
|
151
151
|
end
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
require
|
|
1
|
+
require "shopify_cli"
|
|
2
2
|
|
|
3
3
|
module ShopifyCli
|
|
4
4
|
module Commands
|
|
5
5
|
class Version < ShopifyCli::Command
|
|
6
6
|
def self.help
|
|
7
|
-
ShopifyCli::Context.message(
|
|
7
|
+
ShopifyCli::Context.message("core.version.help", ShopifyCli::TOOL_NAME)
|
|
8
8
|
end
|
|
9
9
|
|
|
10
10
|
def call(_args, _name)
|
data/lib/shopify-cli/context.rb
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
-
require
|
|
3
|
-
require
|
|
4
|
-
require
|
|
5
|
-
require
|
|
6
|
-
require
|
|
2
|
+
require "shopify_cli"
|
|
3
|
+
require "fileutils"
|
|
4
|
+
require "rbconfig"
|
|
5
|
+
require "net/http"
|
|
6
|
+
require "json"
|
|
7
7
|
|
|
8
8
|
module ShopifyCli
|
|
9
9
|
##
|
|
@@ -13,9 +13,9 @@ module ShopifyCli
|
|
|
13
13
|
# resoures.
|
|
14
14
|
#
|
|
15
15
|
class Context
|
|
16
|
-
GEM_LATEST_URI = URI.parse(
|
|
17
|
-
VERSION_CHECK_SECTION =
|
|
18
|
-
LAST_CHECKED_AT_FIELD =
|
|
16
|
+
GEM_LATEST_URI = URI.parse("https://rubygems.org/api/v1/versions/shopify-cli/latest.json")
|
|
17
|
+
VERSION_CHECK_SECTION = "versioncheck"
|
|
18
|
+
LAST_CHECKED_AT_FIELD = "last_checked_at"
|
|
19
19
|
VERSION_CHECK_INTERVAL = 86400
|
|
20
20
|
|
|
21
21
|
class << self
|
|
@@ -40,7 +40,7 @@ module ShopifyCli
|
|
|
40
40
|
# * `key` - a symbol representing the message
|
|
41
41
|
# * `params` - the parameters to format the string with
|
|
42
42
|
def message(key, *params)
|
|
43
|
-
key_parts = key.split(
|
|
43
|
+
key_parts = key.split(".").map(&:to_sym)
|
|
44
44
|
str = Context.messages.dig(*key_parts)
|
|
45
45
|
str ? str % params : key
|
|
46
46
|
end
|
|
@@ -86,7 +86,7 @@ module ShopifyCli
|
|
|
86
86
|
# See `#development?` for checking for development environment.
|
|
87
87
|
#
|
|
88
88
|
def system?
|
|
89
|
-
!Dir.exist?(File.join(ShopifyCli::ROOT,
|
|
89
|
+
!Dir.exist?(File.join(ShopifyCli::ROOT, "test"))
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
# will return true if the cli is running on your development instance.
|
|
@@ -97,13 +97,13 @@ module ShopifyCli
|
|
|
97
97
|
|
|
98
98
|
# will return true while tests are running, either locally or on CI
|
|
99
99
|
def testing?
|
|
100
|
-
ci? || ENV[
|
|
100
|
+
ci? || ENV["TEST"]
|
|
101
101
|
end
|
|
102
102
|
|
|
103
103
|
##
|
|
104
104
|
# will return true if the cli is being tested on CI
|
|
105
105
|
def ci?
|
|
106
|
-
ENV[
|
|
106
|
+
ENV["CI"]
|
|
107
107
|
end
|
|
108
108
|
|
|
109
109
|
# get a environment variable value by name.
|
|
@@ -116,7 +116,7 @@ module ShopifyCli
|
|
|
116
116
|
#
|
|
117
117
|
def getenv(name)
|
|
118
118
|
v = @env[name]
|
|
119
|
-
v ==
|
|
119
|
+
v == "" ? nil : v
|
|
120
120
|
end
|
|
121
121
|
|
|
122
122
|
# set a environment variable value by name.
|
|
@@ -254,7 +254,7 @@ module ShopifyCli
|
|
|
254
254
|
# * `uri` - a http URI to open in a browser
|
|
255
255
|
#
|
|
256
256
|
def open_url!(uri)
|
|
257
|
-
help = message(
|
|
257
|
+
help = message("core.context.open_url", uri)
|
|
258
258
|
puts(help)
|
|
259
259
|
end
|
|
260
260
|
|
|
@@ -303,7 +303,7 @@ module ShopifyCli
|
|
|
303
303
|
# * `text` - a string message to output
|
|
304
304
|
#
|
|
305
305
|
def debug(text)
|
|
306
|
-
puts("{{red:DEBUG}} #{text}") if getenv(
|
|
306
|
+
puts("{{red:DEBUG}} #{text}") if getenv("DEBUG")
|
|
307
307
|
end
|
|
308
308
|
|
|
309
309
|
# proxy call to Context.message.
|
|
@@ -329,14 +329,18 @@ module ShopifyCli
|
|
|
329
329
|
# - `**kwargs`: additional keyword arguments to pass to Process.spawn
|
|
330
330
|
#
|
|
331
331
|
# #### Returns
|
|
332
|
-
# - `status`:
|
|
332
|
+
# - `status`: The `Process::Status` result of the command execution.
|
|
333
333
|
#
|
|
334
334
|
# #### Usage
|
|
335
335
|
#
|
|
336
336
|
# stat = @ctx.system('ls', 'a_folder')
|
|
337
337
|
#
|
|
338
338
|
def system(*args, **kwargs)
|
|
339
|
-
CLI::Kit::System.system(*args, env: @env, **kwargs)
|
|
339
|
+
process_status = CLI::Kit::System.system(*args, env: @env, **kwargs)
|
|
340
|
+
unless process_status.success?
|
|
341
|
+
abort("System call failed: #{args.join(" ")}")
|
|
342
|
+
end
|
|
343
|
+
process_status
|
|
340
344
|
end
|
|
341
345
|
|
|
342
346
|
# Execute a command in the user's environment
|
|
@@ -410,13 +414,13 @@ module ShopifyCli
|
|
|
410
414
|
#
|
|
411
415
|
def on_siginfo
|
|
412
416
|
# Reset any previous SIGINFO handling we had so the only action we take is the given block
|
|
413
|
-
trap(
|
|
417
|
+
trap("INFO", "DEFAULT")
|
|
414
418
|
|
|
415
419
|
fork do
|
|
416
420
|
begin
|
|
417
421
|
r, w = IO.pipe
|
|
418
422
|
@signal = false
|
|
419
|
-
trap(
|
|
423
|
+
trap("SIGINFO") do
|
|
420
424
|
@signal = true
|
|
421
425
|
w.write(0)
|
|
422
426
|
end
|
|
@@ -442,8 +446,8 @@ module ShopifyCli
|
|
|
442
446
|
# @todo This is currently a duplicate of CLI::Kit::System.which() - we should make that method public when we make
|
|
443
447
|
# Kit changes and make this a wrapper instead.
|
|
444
448
|
def which(cmd)
|
|
445
|
-
exts = ENV[
|
|
446
|
-
ENV[
|
|
449
|
+
exts = ENV["PATHEXT"] ? ENV["PATHEXT"].split(";") : [""]
|
|
450
|
+
ENV["PATH"].split(File::PATH_SEPARATOR).each do |path|
|
|
447
451
|
exts.each do |ext|
|
|
448
452
|
exe = File.join(File.expand_path(path), "#{cmd}#{ext}")
|
|
449
453
|
return exe if File.executable?(exe) && !File.directory?(exe)
|
|
@@ -470,10 +474,27 @@ module ShopifyCli
|
|
|
470
474
|
end
|
|
471
475
|
end
|
|
472
476
|
|
|
477
|
+
# Returns file extension depending on OS
|
|
478
|
+
# since windows has multiple extensions, the default is .exe unless otherwise specified
|
|
479
|
+
#
|
|
480
|
+
# #### Parameters
|
|
481
|
+
# - ext: optional extension for windows file
|
|
482
|
+
#
|
|
483
|
+
# #### Returns
|
|
484
|
+
# - ext: string for file extension on windows
|
|
485
|
+
# : empty string otherwise
|
|
486
|
+
def executable_file_extension(ext = ".exe")
|
|
487
|
+
if windows?
|
|
488
|
+
ext
|
|
489
|
+
else
|
|
490
|
+
""
|
|
491
|
+
end
|
|
492
|
+
end
|
|
493
|
+
|
|
473
494
|
private
|
|
474
495
|
|
|
475
496
|
def ctx_path(fname)
|
|
476
|
-
require
|
|
497
|
+
require "pathname"
|
|
477
498
|
if Pathname.new(fname).absolute?
|
|
478
499
|
fname
|
|
479
500
|
else
|
data/lib/shopify-cli/core.rb
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
module ShopifyCli
|
|
2
2
|
module Core
|
|
3
|
-
autoload :EntryPoint,
|
|
4
|
-
autoload :Executor,
|
|
5
|
-
autoload :HelpResolver,
|
|
6
|
-
autoload :Monorail,
|
|
3
|
+
autoload :EntryPoint, "shopify-cli/core/entry_point"
|
|
4
|
+
autoload :Executor, "shopify-cli/core/executor"
|
|
5
|
+
autoload :HelpResolver, "shopify-cli/core/help_resolver"
|
|
6
|
+
autoload :Monorail, "shopify-cli/core/monorail"
|
|
7
7
|
end
|
|
8
8
|
end
|