shopify-cli 1.3.1 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- 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/.gitignore +0 -1
- data/.rubocop.yml +61 -8
- data/.rubocop_todo.yml +11 -0
- data/.travis.yml +1 -0
- data/CHANGELOG.md +30 -0
- data/Gemfile +12 -11
- data/Gemfile.lock +39 -37
- data/README.md +39 -7
- data/RELEASING.md +19 -29
- 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 +2 -2
- 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 +46 -38
- 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 +60 -54
- 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 +42 -38
- data/lib/project_types/script/commands/create.rb +13 -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 +38 -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 +18 -19
- data/lib/project_types/script/layers/application/create_script.rb +13 -11
- 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 +12 -18
- data/lib/project_types/script/layers/domain/errors.rb +7 -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 -54
- data/lib/project_types/script/layers/infrastructure/assemblyscript_task_runner.rb +49 -18
- data/lib/project_types/script/layers/infrastructure/errors.rb +17 -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 +26 -16
- data/lib/project_types/script/layers/infrastructure/task_runner.rb +4 -3
- data/lib/project_types/script/messages/messages.rb +67 -10
- data/lib/project_types/script/script_project.rb +47 -16
- data/lib/project_types/script/ui/error_handler.rb +115 -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 +38 -37
- 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 +40 -31
- 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 +6 -6
- 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 +27 -0
- 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 +24 -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 +84 -0
- 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 -51
- 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 +84 -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
data/RELEASING.md
CHANGED
@@ -2,50 +2,40 @@
|
|
2
2
|
|
3
3
|
1. Check the Semantic Versioning page for info on how to version the new release: http://semver.org
|
4
4
|
|
5
|
-
|
5
|
+
1. Make sure you're on the most recent `master`
|
6
|
+
```
|
7
|
+
$ git checkout master
|
8
|
+
$ git pull
|
9
|
+
```
|
10
|
+
|
11
|
+
1. Create a branch named `release_X_Y_Z` (replacing `X_Y_Z` with the intended release version)
|
6
12
|
```
|
7
13
|
$ git checkout -b release_X_Y_Z
|
8
14
|
```
|
9
15
|
|
10
|
-
|
16
|
+
1. Update the version of Shopify CLI in `lib/shopify-cli/version.rb`
|
11
17
|
|
12
|
-
|
18
|
+
1. Add an entry for the new release to `CHANGELOG.md`
|
13
19
|
|
14
|
-
|
20
|
+
1. Commit the changes with a commit message like "Packaging for release X.Y.Z"
|
15
21
|
```
|
16
22
|
$ git commit -am "Packaging for release vX.Y.Z"
|
17
23
|
```
|
18
24
|
|
19
|
-
|
25
|
+
1. Push out the changes
|
20
26
|
```
|
21
27
|
$ git push -u origin release_X_Y_Z
|
22
28
|
```
|
23
29
|
|
24
|
-
|
30
|
+
1. Open a PR for the branch, get necessary approvals from code owners and merge into main branch. Note that the PR title will be the release note in Shipit, so make sure it mentions the release
|
25
31
|
|
26
|
-
|
32
|
+
1. Deploy using Shipit
|
27
33
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
34
|
+
1. Check the "Actions" tab to see if the _Create Release_ workflow is successful.
|
35
|
+
The workflow will automatically create a [release](https://github.com/Shopify/shopify-app-cli/releases) with the latest tag and `.deb`, `.rpm` assets attached.
|
36
|
+
|
37
|
+
2. Check the `Shopify/homebrew-shopify` repository for new PR `shopify-cli {version}`
|
38
|
+
* rename PR to `Packaging for release of v{version} of shopify-cli`
|
39
|
+
* when PR is approved, merge into main branch
|
33
40
|
|
34
|
-
10. Clone the `Shopify/homebrew-shopify` repository (if not already cloned), and then
|
35
|
-
* create a branch named `release_X_Y_Z_of_shopify-cli`
|
36
|
-
* update the brew formula in `shopify-cli.rb` with the generated formula in `packaging/builds/X.Y.Z/` in the `Shopify/shopify-app-cli` repo (from step 9)
|
37
|
-
* commit the change and create a PR on the [Shopify Homebrew repository](https://github.com/Shopify/homebrew-shopify)
|
38
|
-
* when PR is approved, merge into main branch
|
39
41
|
|
40
|
-
11. Go to [releases](https://github.com/Shopify/shopify-app-cli/releases) page of `Shopify/shopify-app-cli` repo and create a new release:
|
41
|
-
* use the tag created in step 8 by Shipit (should be "vX.Y.Z")
|
42
|
-
* release title = "Version X.Y.Z"
|
43
|
-
* description should be
|
44
|
-
```
|
45
|
-
Release of version X.Y.Z of Shopify App CLI
|
46
|
-
|
47
|
-
Please refer to [CHANGELOG](https://github.com/Shopify/shopify-app-cli/blob/master/CHANGELOG.md) for details.
|
48
|
-
```
|
49
|
-
* upload the `.deb` and `.rpm` files from `packaging/builds/X.Y.Z/` (generated in step 9)
|
50
|
-
* if it's a pre-release version, select the "This is a pre-release" checkbox
|
51
|
-
* and click "Publish release".
|
data/Rakefile
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
require_relative
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
1
|
+
require_relative "bin/load_shopify"
|
2
|
+
require "rake/testtask"
|
3
|
+
require "rubocop/rake_task"
|
4
|
+
require "bundler/gem_tasks"
|
5
5
|
|
6
6
|
Rake::TestTask.new do |t|
|
7
7
|
t.libs += %w(test)
|
8
|
-
t.test_files = FileList[
|
8
|
+
t.test_files = FileList["test/**/*_test.rb"]
|
9
9
|
t.verbose = false
|
10
10
|
t.warning = false
|
11
11
|
end
|
@@ -16,33 +16,37 @@ task(default: [:test, :rubocop])
|
|
16
16
|
|
17
17
|
desc("Start up irb with cli loaded")
|
18
18
|
task :console do
|
19
|
-
exec(
|
19
|
+
exec("irb", "-r", "./bin/load_shopify.rb", "-r", "byebug")
|
20
20
|
end
|
21
21
|
|
22
22
|
namespace :rdoc do
|
23
|
-
repo =
|
24
|
-
intermediate =
|
23
|
+
repo = "https://github.com/Shopify/shopify-app-cli.wiki.git"
|
24
|
+
intermediate = "markdown_intermediate"
|
25
25
|
file_to_doc = [
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
26
|
+
"lib/shopify-cli/admin_api.rb",
|
27
|
+
"lib/shopify-cli/context.rb",
|
28
|
+
"lib/shopify-cli/db.rb",
|
29
|
+
"lib/shopify-cli/git.rb",
|
30
|
+
"lib/shopify-cli/heroku.rb",
|
31
|
+
"lib/shopify-cli/js_deps.rb",
|
32
|
+
"lib/shopify-cli/method_object.rb",
|
33
|
+
"lib/shopify-cli/partners_api.rb",
|
34
|
+
"lib/shopify-cli/process_supervision.rb",
|
35
|
+
"lib/shopify-cli/project.rb",
|
36
|
+
"lib/shopify-cli/result.rb",
|
37
|
+
"lib/shopify-cli/transform_data_structure.rb",
|
38
|
+
"lib/shopify-cli/tunnel.rb",
|
39
|
+
"lib/shopify-cli/lazy_delegator.rb",
|
36
40
|
]
|
37
41
|
|
38
42
|
task all: [:markdown, :wiki, :cleanup]
|
39
43
|
|
40
44
|
desc("Generate markdown files from rdoc comments")
|
41
45
|
task :markdown do
|
42
|
-
require
|
43
|
-
require
|
46
|
+
require "rdoc/rdoc"
|
47
|
+
require "docgen/markdown"
|
44
48
|
options = RDoc::Options.new
|
45
|
-
options.setup_generator(
|
49
|
+
options.setup_generator("markdown")
|
46
50
|
options.op_dir = intermediate
|
47
51
|
options.files = file_to_doc
|
48
52
|
RDoc::RDoc.new.document(options)
|
@@ -50,14 +54,14 @@ namespace :rdoc do
|
|
50
54
|
|
51
55
|
desc("Copy markdown documentation to the wiki and commit them")
|
52
56
|
task :wiki do
|
53
|
-
require
|
57
|
+
require "tmpdir"
|
54
58
|
Dir.mktmpdir do |temp_dir|
|
55
59
|
system("git clone --depth=1 #{repo} #{temp_dir}")
|
56
|
-
FileUtils.cp(Dir[File.join(intermediate,
|
60
|
+
FileUtils.cp(Dir[File.join(intermediate, "*.md")], temp_dir)
|
57
61
|
Dir.chdir(temp_dir) do
|
58
|
-
system(
|
62
|
+
system("git add --all")
|
59
63
|
system('git commit -am "auto doc update"')
|
60
|
-
system(
|
64
|
+
system("git push")
|
61
65
|
end
|
62
66
|
end
|
63
67
|
end
|
@@ -69,10 +73,10 @@ namespace :rdoc do
|
|
69
73
|
end
|
70
74
|
|
71
75
|
desc("Generate markdown documentation and update the wiki")
|
72
|
-
task(rdoc:
|
76
|
+
task(rdoc: "rdoc:all")
|
73
77
|
|
74
78
|
namespace :package do
|
75
|
-
require
|
79
|
+
require "shopify-cli/packager"
|
76
80
|
|
77
81
|
task all: [:debian, :rpm, :homebrew]
|
78
82
|
|
@@ -93,4 +97,4 @@ namespace :package do
|
|
93
97
|
end
|
94
98
|
|
95
99
|
desc("Builds all distribution packages of the CLI")
|
96
|
-
task(package:
|
100
|
+
task(package: "package:all")
|
data/bin/load_shopify.rb
CHANGED
@@ -3,20 +3,20 @@
|
|
3
3
|
lib_path = File.expand_path("../../lib", __FILE__)
|
4
4
|
$LOAD_PATH.unshift(lib_path) unless $LOAD_PATH.include?(lib_path)
|
5
5
|
|
6
|
-
ENV[
|
7
|
-
ENV[
|
6
|
+
ENV["SHELLPID"] ||= Process.ppid.to_s
|
7
|
+
ENV["USER_PWD"] ||= Dir.pwd
|
8
8
|
|
9
9
|
# Prune non-absolute paths from PATH to prevent non-deterministic behavior
|
10
10
|
# i.e. If user has "." or "./bin" in their PATH
|
11
11
|
# Note that this logic is duplicated in lib/shopify.rb
|
12
|
-
ENV[
|
13
|
-
p.start_with?(
|
12
|
+
ENV["PATH"] = ENV["PATH"].split(File::PATH_SEPARATOR).select do |p|
|
13
|
+
p.start_with?("/", "~", /[A-Z]:\\/)
|
14
14
|
end.join(File::PATH_SEPARATOR)
|
15
15
|
|
16
16
|
$original_env = ENV.to_hash
|
17
17
|
|
18
|
-
require
|
18
|
+
require "shopify_cli"
|
19
19
|
|
20
|
-
if ENV[
|
20
|
+
if ENV["PRINT_LOADED_FEATURES"]
|
21
21
|
puts $LOADED_FEATURES
|
22
22
|
end
|
data/bin/shopify
CHANGED
@@ -14,7 +14,7 @@ module Kernel
|
|
14
14
|
raise if name == "#{RUBY_VERSION[/\d+\.\d+/]}/psych.so"
|
15
15
|
STDERR.puts "[Note] You cannot use gems with Shopify App CLI."
|
16
16
|
STDERR.puts "[LoadError] #{e.message}"
|
17
|
-
if ENV[
|
17
|
+
if ENV["DEBUG"]
|
18
18
|
STDERR.puts e.backtrace
|
19
19
|
STDERR.puts "\n"
|
20
20
|
end
|
@@ -27,7 +27,7 @@ module Kernel
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
-
require_relative
|
30
|
+
require_relative "./load_shopify"
|
31
31
|
|
32
32
|
exit(ShopifyCli::ErrorHandler.call do
|
33
33
|
ShopifyCli::Core::EntryPoint.call(ARGV.dup)
|
data/dev.yml
CHANGED
data/docs/_config.yml
CHANGED
@@ -1,19 +1,2 @@
|
|
1
|
-
title: Shopify App CLI
|
2
|
-
markdown: kramdown
|
3
|
-
url: https://shopify.github.io
|
4
|
-
baseurl: /shopify-app-cli
|
5
|
-
|
6
|
-
exclude: [
|
7
|
-
'heroku/',
|
8
|
-
'Gemfile',
|
9
|
-
'Gemfile.lock'
|
10
|
-
]
|
11
|
-
|
12
|
-
defaults:
|
13
|
-
- scope:
|
14
|
-
path: ""
|
15
|
-
values:
|
16
|
-
toc: true
|
17
|
-
|
18
1
|
plugins:
|
19
|
-
- jekyll-redirect-from
|
2
|
+
- jekyll-redirect-from
|
@@ -1,82 +1,4 @@
|
|
1
1
|
---
|
2
|
-
title: Node.js app
|
3
|
-
|
2
|
+
title: Node.js app commands
|
3
|
+
redirect_to: https://shopify.dev/tools/cli/reference/node-app
|
4
4
|
---
|
5
|
-
|
6
|
-
## `deploy`
|
7
|
-
|
8
|
-
Deploy the current Node.js app to a hosting service. Currently, the only option is [Heroku](https://www.heroku.com).
|
9
|
-
|
10
|
-
```console
|
11
|
-
$ shopify deploy heroku
|
12
|
-
```
|
13
|
-
|
14
|
-
## `generate`
|
15
|
-
|
16
|
-
Generate boilerplate code inside your app project. Node.js apps support generating new **pages**, **Billing API calls**, and **webhooks**.
|
17
|
-
|
18
|
-
```console
|
19
|
-
$ shopify generate page
|
20
|
-
$ shopify generate billing
|
21
|
-
$ shopify generate webhook
|
22
|
-
```
|
23
|
-
|
24
|
-
## `open`
|
25
|
-
|
26
|
-
Open your local development app in your default browser.
|
27
|
-
|
28
|
-
```console
|
29
|
-
$ shopify open
|
30
|
-
```
|
31
|
-
|
32
|
-
## `populate`
|
33
|
-
|
34
|
-
Add example data to your development store. This is useful for testing your app’s behavior. You can create the following types of example store records:
|
35
|
-
|
36
|
-
- Products
|
37
|
-
- Customers
|
38
|
-
- Orders
|
39
|
-
|
40
|
-
```console
|
41
|
-
$ shopify populate products
|
42
|
-
$ shopify populate customers
|
43
|
-
$ shopify populate draftorders
|
44
|
-
```
|
45
|
-
|
46
|
-
By default, the `populate` command adds 5 records. Use the `--count` option to specify a different number:
|
47
|
-
|
48
|
-
```console
|
49
|
-
$ shopify populate products --count 10
|
50
|
-
```
|
51
|
-
|
52
|
-
## `serve`
|
53
|
-
|
54
|
-
Start a local development server for your project, as well as a public [ngrok](https://ngrok.com/) tunnel to your localhost.
|
55
|
-
|
56
|
-
```console
|
57
|
-
$ shopify serve
|
58
|
-
```
|
59
|
-
|
60
|
-
## `tunnel`
|
61
|
-
|
62
|
-
Control an HTTP tunnel to your local development app using [ngrok](https://ngrok.com). With the `tunnel` command you can authenticate with ngrok and start or stop the tunnel. (Note that the `serve` command will automatically run `tunnel start` for you.)
|
63
|
-
|
64
|
-
To authenticate with ngrok, you need an authentication token. You can find it in [your ngrok dashboard](https://dashboard.ngrok.com/auth/your-authtoken). Copy your token and use it with the `tunnel auth` command:
|
65
|
-
|
66
|
-
```console
|
67
|
-
$ shopify tunnel auth <token>
|
68
|
-
```
|
69
|
-
|
70
|
-
This will write your ngrok auth token to `~/.ngrok2/ngrok.yml`. To learn more about ngrok configuration, [consult ngrok’s documentation](https://ngrok.com/docs#config).
|
71
|
-
|
72
|
-
To start an ngrok tunnel to your app in your localhost development environment:
|
73
|
-
|
74
|
-
```console
|
75
|
-
$ shopify tunnel start
|
76
|
-
```
|
77
|
-
|
78
|
-
To stop the running ngrok tunnel:
|
79
|
-
|
80
|
-
```console
|
81
|
-
$ shopify tunnel stop
|
82
|
-
```
|
data/docs/app/node/index.md
CHANGED
@@ -1,35 +1,4 @@
|
|
1
1
|
---
|
2
|
-
title: Getting started with
|
3
|
-
|
4
|
-
toc: false
|
2
|
+
title: Getting started with Shopify App CLI
|
3
|
+
redirect_to: https://shopify.dev/tools/cli/getting-started
|
5
4
|
---
|
6
|
-
|
7
|
-
## Create a new Node.js app project
|
8
|
-
|
9
|
-
To create a new Node.js project, type `shopify create node`. This will scaffold a new Node.js app in a subdirectory.
|
10
|
-
|
11
|
-
```console
|
12
|
-
$ shopify create node
|
13
|
-
? App Name
|
14
|
-
>
|
15
|
-
```
|
16
|
-
|
17
|
-
## Start a local development server
|
18
|
-
|
19
|
-
Once your app is created, you can work with it immediately by running `shopify serve` to start a local development server. Shopify App CLI uses [ngrok](https://ngrok.com) to create a tunnel. ngrok will choose a unique URL for you. The server will stay open until you type **Ctrl-C**.
|
20
|
-
|
21
|
-
```console
|
22
|
-
$ shopify serve
|
23
|
-
✓ ngrok tunnel running at https://example.ngrok.io
|
24
|
-
✓ writing .env file...
|
25
|
-
```
|
26
|
-
|
27
|
-
## Install your app on your development store
|
28
|
-
|
29
|
-
With the server running, open a new terminal window and run `shopify open` to open your app in your browser and install it on a development store.
|
30
|
-
|
31
|
-
```console
|
32
|
-
$ shopify open
|
33
|
-
```
|
34
|
-
|
35
|
-
For more information, consult the [Node.js project command reference]({{ site.baseurl }}{% link app/node/commands/index.md %}).
|
@@ -1,80 +1,4 @@
|
|
1
1
|
---
|
2
|
-
title: Rails app
|
3
|
-
|
2
|
+
title: Ruby on Rails app commands
|
3
|
+
redirect_to: https://shopify.dev/tools/cli/reference/ruby-on-rails-app
|
4
4
|
---
|
5
|
-
|
6
|
-
## `deploy`
|
7
|
-
|
8
|
-
Deploy the current Rails project to a hosting service. Currently, the only option is [Heroku](https://www.heroku.com).
|
9
|
-
|
10
|
-
```console
|
11
|
-
$ shopify deploy heroku
|
12
|
-
```
|
13
|
-
|
14
|
-
## `generate`
|
15
|
-
|
16
|
-
Generate boilerplate code inside your app project. Rails projects support generating new webhooks.
|
17
|
-
|
18
|
-
```console
|
19
|
-
$ shopify generate webhook
|
20
|
-
```
|
21
|
-
|
22
|
-
## `open`
|
23
|
-
|
24
|
-
Open your local development app in your default browser.
|
25
|
-
|
26
|
-
```console
|
27
|
-
$ shopify open
|
28
|
-
```
|
29
|
-
|
30
|
-
## `populate`
|
31
|
-
|
32
|
-
Add example data to your development store. This is useful for testing your app’s behavior. You can create the following types of example store records:
|
33
|
-
|
34
|
-
- Products
|
35
|
-
- Customers
|
36
|
-
- Orders
|
37
|
-
|
38
|
-
```console
|
39
|
-
$ shopify populate products
|
40
|
-
$ shopify populate customers
|
41
|
-
$ shopify populate draftorders
|
42
|
-
```
|
43
|
-
|
44
|
-
By default, the `populate` command adds 5 records. Use the `--count` option to specify a different number:
|
45
|
-
|
46
|
-
```console
|
47
|
-
$ shopify populate products --count 10
|
48
|
-
```
|
49
|
-
|
50
|
-
## `serve`
|
51
|
-
|
52
|
-
Start a local development server for your project, as well as a public [ngrok](https://ngrok.com/) tunnel to your localhost.
|
53
|
-
|
54
|
-
```console
|
55
|
-
$ shopify serve
|
56
|
-
```
|
57
|
-
|
58
|
-
## `tunnel`
|
59
|
-
|
60
|
-
Control an HTTP tunnel to your local development app using [ngrok](https://ngrok.com). With the `tunnel` command you can authenticate with ngrok and start or stop the tunnel. (Note that the `serve` command will automatically run `tunnel start` for you.)
|
61
|
-
|
62
|
-
To authenticate with ngrok, you need an authentication token. You can find it in [your ngrok dashboard](https://dashboard.ngrok.com/auth/your-authtoken). Copy your token and use it with the `tunnel auth` command:
|
63
|
-
|
64
|
-
```console
|
65
|
-
$ shopify tunnel auth <token>
|
66
|
-
```
|
67
|
-
|
68
|
-
This will write your ngrok auth token to `~/.ngrok2/ngrok.yml`. To learn more about ngrok configuration, [consult ngrok’s documentation](https://ngrok.com/docs#config).
|
69
|
-
|
70
|
-
To start an ngrok tunnel to your app in your localhost development environment:
|
71
|
-
|
72
|
-
```console
|
73
|
-
$ shopify tunnel start
|
74
|
-
```
|
75
|
-
|
76
|
-
To stop the running ngrok tunnel:
|
77
|
-
|
78
|
-
```console
|
79
|
-
$ shopify tunnel stop
|
80
|
-
```
|