shopify-cli 0.9.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 (273) hide show
  1. checksums.yaml +7 -0
  2. data/.github/CODEOWNERS +1 -0
  3. data/.github/CODE_OF_CONDUCT.md +73 -0
  4. data/.github/CONTRIBUTING.md +51 -0
  5. data/.github/DESIGN.md +153 -0
  6. data/.github/ISSUE_TEMPLATE.md +38 -0
  7. data/.github/PULL_REQUEST_TEMPLATE.md +22 -0
  8. data/.github/probots.yml +3 -0
  9. data/.gitignore +19 -0
  10. data/.rubocop.yml +47 -0
  11. data/.ruby-version +1 -0
  12. data/.travis.yml +12 -0
  13. data/Gemfile +22 -0
  14. data/Gemfile.lock +77 -0
  15. data/LICENSE.md +7 -0
  16. data/README.md +13 -0
  17. data/Rakefile +101 -0
  18. data/SECURITY.md +59 -0
  19. data/Vagrantfile +17 -0
  20. data/bin/load_shopify.rb +20 -0
  21. data/bin/shopify +32 -0
  22. data/dev.yml +17 -0
  23. data/docs/Gemfile +5 -0
  24. data/docs/Gemfile.lock +248 -0
  25. data/docs/_config.yml +16 -0
  26. data/docs/_data/nav.yml +26 -0
  27. data/docs/_includes/footer.html +15 -0
  28. data/docs/_includes/head.html +19 -0
  29. data/docs/_includes/sidebar_nav.html +22 -0
  30. data/docs/_includes/toc.html +112 -0
  31. data/docs/_layouts/default.html +79 -0
  32. data/docs/app/node/commands/index.md +82 -0
  33. data/docs/app/node/index.md +35 -0
  34. data/docs/app/rails/commands/index.md +80 -0
  35. data/docs/app/rails/index.md +36 -0
  36. data/docs/core/index.md +70 -0
  37. data/docs/css/docs.css +157 -0
  38. data/docs/getting-started/index.md +61 -0
  39. data/docs/help/start-app/index.md +6 -0
  40. data/docs/images/header.png +0 -0
  41. data/docs/index.md +27 -0
  42. data/docs/installing-ruby.md +28 -0
  43. data/ext/shopify-cli/extconf.rb +27 -0
  44. data/install.sh +7 -0
  45. data/lib/docgen/class_template.md.erb +81 -0
  46. data/lib/docgen/index_template.md.erb +5 -0
  47. data/lib/docgen/markdown.rb +101 -0
  48. data/lib/graphql/admin_introspection.graphql +87 -0
  49. data/lib/graphql/all_organizations.graphql +19 -0
  50. data/lib/graphql/all_orgs_with_apps.graphql +30 -0
  51. data/lib/graphql/api_versions.graphql +6 -0
  52. data/lib/graphql/convert_dev_to_test_store.graphql +10 -0
  53. data/lib/graphql/create_app.graphql +20 -0
  54. data/lib/graphql/create_customer.graphql +9 -0
  55. data/lib/graphql/create_draft_order.graphql +8 -0
  56. data/lib/graphql/create_product.graphql +9 -0
  57. data/lib/graphql/extension_create.graphql +21 -0
  58. data/lib/graphql/extension_update_draft.graphql +18 -0
  59. data/lib/graphql/find_organization.graphql +17 -0
  60. data/lib/graphql/get_app_urls.graphql +6 -0
  61. data/lib/graphql/update_dashboard_urls.graphql +8 -0
  62. data/lib/project_types/extension/cli.rb +71 -0
  63. data/lib/project_types/extension/commands/build.rb +29 -0
  64. data/lib/project_types/extension/commands/create.rb +49 -0
  65. data/lib/project_types/extension/commands/extension_command.rb +22 -0
  66. data/lib/project_types/extension/commands/push.rb +69 -0
  67. data/lib/project_types/extension/commands/register.rb +78 -0
  68. data/lib/project_types/extension/commands/serve.rb +24 -0
  69. data/lib/project_types/extension/commands/tunnel.rb +69 -0
  70. data/lib/project_types/extension/extension_project.rb +85 -0
  71. data/lib/project_types/extension/extension_project_keys.rb +10 -0
  72. data/lib/project_types/extension/features/argo.rb +48 -0
  73. data/lib/project_types/extension/features/argo_dependencies.rb +28 -0
  74. data/lib/project_types/extension/features/argo_setup.rb +54 -0
  75. data/lib/project_types/extension/features/argo_setup_step.rb +31 -0
  76. data/lib/project_types/extension/features/argo_setup_steps.rb +53 -0
  77. data/lib/project_types/extension/features/tunnel_url.rb +20 -0
  78. data/lib/project_types/extension/forms/create.rb +52 -0
  79. data/lib/project_types/extension/forms/register.rb +48 -0
  80. data/lib/project_types/extension/messages/message_loading.rb +37 -0
  81. data/lib/project_types/extension/messages/messages.rb +126 -0
  82. data/lib/project_types/extension/models/app.rb +14 -0
  83. data/lib/project_types/extension/models/registration.rb +19 -0
  84. data/lib/project_types/extension/models/type.rb +76 -0
  85. data/lib/project_types/extension/models/types/checkout_post_purchase.rb +20 -0
  86. data/lib/project_types/extension/models/types/subscription_management.rb +20 -0
  87. data/lib/project_types/extension/models/validation_error.rb +17 -0
  88. data/lib/project_types/extension/models/version.rb +15 -0
  89. data/lib/project_types/extension/tasks/converters/registration_converter.rb +26 -0
  90. data/lib/project_types/extension/tasks/converters/validation_error_converter.rb +25 -0
  91. data/lib/project_types/extension/tasks/converters/version_converter.rb +28 -0
  92. data/lib/project_types/extension/tasks/create_extension.rb +31 -0
  93. data/lib/project_types/extension/tasks/get_apps.rb +34 -0
  94. data/lib/project_types/extension/tasks/update_draft.rb +29 -0
  95. data/lib/project_types/extension/tasks/user_errors.rb +45 -0
  96. data/lib/project_types/node/cli.rb +37 -0
  97. data/lib/project_types/node/commands/create.rb +117 -0
  98. data/lib/project_types/node/commands/deploy.rb +22 -0
  99. data/lib/project_types/node/commands/deploy/heroku.rb +91 -0
  100. data/lib/project_types/node/commands/generate.rb +51 -0
  101. data/lib/project_types/node/commands/generate/billing.rb +37 -0
  102. data/lib/project_types/node/commands/generate/page.rb +55 -0
  103. data/lib/project_types/node/commands/generate/webhook.rb +33 -0
  104. data/lib/project_types/node/commands/open.rb +16 -0
  105. data/lib/project_types/node/commands/populate.rb +23 -0
  106. data/lib/project_types/node/commands/populate/customer.rb +31 -0
  107. data/lib/project_types/node/commands/populate/draft_order.rb +28 -0
  108. data/lib/project_types/node/commands/populate/product.rb +30 -0
  109. data/lib/project_types/node/commands/serve.rb +45 -0
  110. data/lib/project_types/node/commands/tunnel.rb +39 -0
  111. data/lib/project_types/node/forms/create.rb +87 -0
  112. data/lib/project_types/node/messages/messages.rb +260 -0
  113. data/lib/project_types/rails/cli.rb +41 -0
  114. data/lib/project_types/rails/commands/create.rb +126 -0
  115. data/lib/project_types/rails/commands/deploy.rb +22 -0
  116. data/lib/project_types/rails/commands/deploy/heroku.rb +113 -0
  117. data/lib/project_types/rails/commands/generate.rb +49 -0
  118. data/lib/project_types/rails/commands/generate/webhook.rb +39 -0
  119. data/lib/project_types/rails/commands/open.rb +16 -0
  120. data/lib/project_types/rails/commands/populate.rb +23 -0
  121. data/lib/project_types/rails/commands/populate/customer.rb +31 -0
  122. data/lib/project_types/rails/commands/populate/draft_order.rb +28 -0
  123. data/lib/project_types/rails/commands/populate/product.rb +30 -0
  124. data/lib/project_types/rails/commands/serve.rb +47 -0
  125. data/lib/project_types/rails/commands/tunnel.rb +39 -0
  126. data/lib/project_types/rails/forms/create.rb +116 -0
  127. data/lib/project_types/rails/gem.rb +56 -0
  128. data/lib/project_types/rails/messages/messages.rb +283 -0
  129. data/lib/project_types/rails/ruby.rb +17 -0
  130. data/lib/project_types/script/cli.rb +76 -0
  131. data/lib/project_types/script/commands/create.rb +45 -0
  132. data/lib/project_types/script/commands/disable.rb +36 -0
  133. data/lib/project_types/script/commands/enable.rb +46 -0
  134. data/lib/project_types/script/commands/push.rb +39 -0
  135. data/lib/project_types/script/config/extension_points.yml +18 -0
  136. data/lib/project_types/script/errors.rb +16 -0
  137. data/lib/project_types/script/forms/create.rb +29 -0
  138. data/lib/project_types/script/forms/enable.rb +24 -0
  139. data/lib/project_types/script/forms/push.rb +19 -0
  140. data/lib/project_types/script/forms/script_form.rb +66 -0
  141. data/lib/project_types/script/graphql/app_script_update_or_create.graphql +27 -0
  142. data/lib/project_types/script/graphql/script_service_proxy.graphql +8 -0
  143. data/lib/project_types/script/graphql/shop_script_delete.graphql +14 -0
  144. data/lib/project_types/script/graphql/shop_script_update_or_create.graphql +28 -0
  145. data/lib/project_types/script/layers/application/build_script.rb +43 -0
  146. data/lib/project_types/script/layers/application/create_script.rb +47 -0
  147. data/lib/project_types/script/layers/application/disable_script.rb +19 -0
  148. data/lib/project_types/script/layers/application/enable_script.rb +21 -0
  149. data/lib/project_types/script/layers/application/extension_points.rb +17 -0
  150. data/lib/project_types/script/layers/application/project_dependencies.rb +34 -0
  151. data/lib/project_types/script/layers/application/push_script.rb +30 -0
  152. data/lib/project_types/script/layers/domain/errors.rb +25 -0
  153. data/lib/project_types/script/layers/domain/extension_point.rb +29 -0
  154. data/lib/project_types/script/layers/domain/push_package.rb +29 -0
  155. data/lib/project_types/script/layers/domain/script.rb +18 -0
  156. data/lib/project_types/script/layers/infrastructure/assemblyscript_dependency_manager.rb +73 -0
  157. data/lib/project_types/script/layers/infrastructure/assemblyscript_tsconfig.rb +38 -0
  158. data/lib/project_types/script/layers/infrastructure/assemblyscript_wasm_builder.rb +39 -0
  159. data/lib/project_types/script/layers/infrastructure/dependency_manager.rb +36 -0
  160. data/lib/project_types/script/layers/infrastructure/errors.rb +38 -0
  161. data/lib/project_types/script/layers/infrastructure/extension_point_repository.rb +31 -0
  162. data/lib/project_types/script/layers/infrastructure/push_package_repository.rb +47 -0
  163. data/lib/project_types/script/layers/infrastructure/script_builder.rb +34 -0
  164. data/lib/project_types/script/layers/infrastructure/script_repository.rb +89 -0
  165. data/lib/project_types/script/layers/infrastructure/script_service.rb +165 -0
  166. data/lib/project_types/script/layers/infrastructure/test_suite_repository.rb +59 -0
  167. data/lib/project_types/script/messages/messages.rb +204 -0
  168. data/lib/project_types/script/script_project.rb +37 -0
  169. data/lib/project_types/script/templates/ts/as-pect.config.js +21 -0
  170. data/lib/project_types/script/ui/error_handler.rb +136 -0
  171. data/lib/project_types/script/ui/strict_spinner.rb +22 -0
  172. data/lib/rubygems_plugin.rb +18 -0
  173. data/lib/shopify-cli/admin_api.rb +99 -0
  174. data/lib/shopify-cli/admin_api/populate_resource_command.rb +165 -0
  175. data/lib/shopify-cli/admin_api/schema.rb +32 -0
  176. data/lib/shopify-cli/api.rb +104 -0
  177. data/lib/shopify-cli/command.rb +67 -0
  178. data/lib/shopify-cli/commands.rb +28 -0
  179. data/lib/shopify-cli/commands/connect.rb +108 -0
  180. data/lib/shopify-cli/commands/create.rb +50 -0
  181. data/lib/shopify-cli/commands/help.rb +79 -0
  182. data/lib/shopify-cli/commands/logout.rb +23 -0
  183. data/lib/shopify-cli/commands/system.rb +135 -0
  184. data/lib/shopify-cli/commands/version.rb +15 -0
  185. data/lib/shopify-cli/context.rb +372 -0
  186. data/lib/shopify-cli/core.rb +9 -0
  187. data/lib/shopify-cli/core/entry_point.rb +40 -0
  188. data/lib/shopify-cli/core/executor.rb +21 -0
  189. data/lib/shopify-cli/core/help_resolver.rb +20 -0
  190. data/lib/shopify-cli/core/monorail.rb +118 -0
  191. data/lib/shopify-cli/db.rb +114 -0
  192. data/lib/shopify-cli/form.rb +40 -0
  193. data/lib/shopify-cli/git.rb +141 -0
  194. data/lib/shopify-cli/helpers.rb +5 -0
  195. data/lib/shopify-cli/helpers/haikunator.rb +92 -0
  196. data/lib/shopify-cli/heroku.rb +97 -0
  197. data/lib/shopify-cli/js_deps.rb +110 -0
  198. data/lib/shopify-cli/js_system.rb +98 -0
  199. data/lib/shopify-cli/messages/messages.rb +287 -0
  200. data/lib/shopify-cli/oauth.rb +192 -0
  201. data/lib/shopify-cli/oauth/servlet.rb +61 -0
  202. data/lib/shopify-cli/options.rb +40 -0
  203. data/lib/shopify-cli/packager.rb +116 -0
  204. data/lib/shopify-cli/partners_api.rb +114 -0
  205. data/lib/shopify-cli/partners_api/organizations.rb +32 -0
  206. data/lib/shopify-cli/process_supervision.rb +187 -0
  207. data/lib/shopify-cli/project.rb +191 -0
  208. data/lib/shopify-cli/project_type.rb +83 -0
  209. data/lib/shopify-cli/resources.rb +5 -0
  210. data/lib/shopify-cli/resources/env_file.rb +96 -0
  211. data/lib/shopify-cli/sub_command.rb +15 -0
  212. data/lib/shopify-cli/task.rb +10 -0
  213. data/lib/shopify-cli/tasks.rb +32 -0
  214. data/lib/shopify-cli/tasks/create_api_client.rb +29 -0
  215. data/lib/shopify-cli/tasks/ensure_dev_store.rb +41 -0
  216. data/lib/shopify-cli/tasks/ensure_env.rb +31 -0
  217. data/lib/shopify-cli/tasks/ensure_loopback_url.rb +20 -0
  218. data/lib/shopify-cli/tasks/update_dashboard_urls.rb +44 -0
  219. data/lib/shopify-cli/tunnel.rb +154 -0
  220. data/lib/shopify-cli/version.rb +3 -0
  221. data/lib/shopify_cli.rb +132 -0
  222. data/shopify-cli.gemspec +40 -0
  223. data/shopify.fish +12 -0
  224. data/shopify.sh +11 -0
  225. data/vendor/deps/cli-kit/REVISION +1 -0
  226. data/vendor/deps/cli-kit/lib/cli/kit.rb +60 -0
  227. data/vendor/deps/cli-kit/lib/cli/kit/autocall.rb +21 -0
  228. data/vendor/deps/cli-kit/lib/cli/kit/base_command.rb +49 -0
  229. data/vendor/deps/cli-kit/lib/cli/kit/command_registry.rb +94 -0
  230. data/vendor/deps/cli-kit/lib/cli/kit/config.rb +133 -0
  231. data/vendor/deps/cli-kit/lib/cli/kit/error_handler.rb +115 -0
  232. data/vendor/deps/cli-kit/lib/cli/kit/executor.rb +81 -0
  233. data/vendor/deps/cli-kit/lib/cli/kit/ini.rb +102 -0
  234. data/vendor/deps/cli-kit/lib/cli/kit/levenshtein.rb +82 -0
  235. data/vendor/deps/cli-kit/lib/cli/kit/logger.rb +76 -0
  236. data/vendor/deps/cli-kit/lib/cli/kit/resolver.rb +60 -0
  237. data/vendor/deps/cli-kit/lib/cli/kit/ruby_backports/enumerable.rb +6 -0
  238. data/vendor/deps/cli-kit/lib/cli/kit/support.rb +9 -0
  239. data/vendor/deps/cli-kit/lib/cli/kit/support/test_helper.rb +244 -0
  240. data/vendor/deps/cli-kit/lib/cli/kit/system.rb +207 -0
  241. data/vendor/deps/cli-kit/lib/cli/kit/util.rb +189 -0
  242. data/vendor/deps/cli-kit/lib/cli/kit/version.rb +5 -0
  243. data/vendor/deps/cli-ui/REVISION +1 -0
  244. data/vendor/deps/cli-ui/lib/cli/ui.rb +187 -0
  245. data/vendor/deps/cli-ui/lib/cli/ui/ansi.rb +153 -0
  246. data/vendor/deps/cli-ui/lib/cli/ui/box.rb +15 -0
  247. data/vendor/deps/cli-ui/lib/cli/ui/color.rb +79 -0
  248. data/vendor/deps/cli-ui/lib/cli/ui/formatter.rb +179 -0
  249. data/vendor/deps/cli-ui/lib/cli/ui/frame.rb +310 -0
  250. data/vendor/deps/cli-ui/lib/cli/ui/glyph.rb +78 -0
  251. data/vendor/deps/cli-ui/lib/cli/ui/progress.rb +88 -0
  252. data/vendor/deps/cli-ui/lib/cli/ui/prompt.rb +248 -0
  253. data/vendor/deps/cli-ui/lib/cli/ui/prompt/interactive_options.rb +472 -0
  254. data/vendor/deps/cli-ui/lib/cli/ui/prompt/options_handler.rb +24 -0
  255. data/vendor/deps/cli-ui/lib/cli/ui/spinner.rb +48 -0
  256. data/vendor/deps/cli-ui/lib/cli/ui/spinner/async.rb +40 -0
  257. data/vendor/deps/cli-ui/lib/cli/ui/spinner/spin_group.rb +241 -0
  258. data/vendor/deps/cli-ui/lib/cli/ui/stdout_router.rb +227 -0
  259. data/vendor/deps/cli-ui/lib/cli/ui/terminal.rb +36 -0
  260. data/vendor/deps/cli-ui/lib/cli/ui/truncater.rb +102 -0
  261. data/vendor/deps/cli-ui/lib/cli/ui/version.rb +5 -0
  262. data/vendor/deps/smart_properties/REVISION +1 -0
  263. data/vendor/deps/smart_properties/lib/smart_properties.rb +174 -0
  264. data/vendor/deps/smart_properties/lib/smart_properties/errors.rb +114 -0
  265. data/vendor/deps/smart_properties/lib/smart_properties/property.rb +162 -0
  266. data/vendor/deps/smart_properties/lib/smart_properties/property_collection.rb +83 -0
  267. data/vendor/deps/smart_properties/lib/smart_properties/validations.rb +8 -0
  268. data/vendor/deps/smart_properties/lib/smart_properties/validations/ancestor.rb +27 -0
  269. data/vendor/deps/smart_properties/lib/smart_properties/version.rb +3 -0
  270. data/vendor/lib/semantic/LICENSE +20 -0
  271. data/vendor/lib/semantic/semantic.rb +4 -0
  272. data/vendor/lib/semantic/version.rb +180 -0
  273. metadata +374 -0
@@ -0,0 +1,36 @@
1
+ ---
2
+ title: Getting started with Rails app projects
3
+ section: rails
4
+ toc: false
5
+ ---
6
+
7
+ ## Create a new Rails app project
8
+
9
+ To create a new Rails project, type `shopify create rails`. This will scaffold a new Rails app in a subdirectory.
10
+
11
+ ```console
12
+ $ shopify create rails
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 [Rails project command reference]({{ site.baseurl }}{% link app/rails/commands/index.md %}).
36
+
@@ -0,0 +1,70 @@
1
+ ---
2
+ title: Core commands
3
+ section: core
4
+ ---
5
+
6
+ ## `help`
7
+
8
+ Lists the available commands and describes what they do. The commands available will vary depending on whether you are inside a project directory, and what kind of project it is.
9
+
10
+ ```console
11
+ $ shopify help
12
+ $ shopify -h
13
+ $ shopify --help
14
+ ```
15
+
16
+ You can also use the `help` command or options to get more detailed information about a specific command:
17
+
18
+ ```console
19
+ $ shopify help [command]
20
+ $ shopify [command] -h
21
+ $ shopify [command] --help
22
+ ```
23
+
24
+ ## `connect`
25
+
26
+ Connect an existing Shopify App CLI project with Shopify, such as a Partner account or a specific Shopify development store. This command re-creates the project’s `.env` file with your authentication tokens.
27
+
28
+ This is useful if you are working on one project across multiple computers, or collaborating with other developers using a version control system like git.
29
+
30
+ ```console
31
+ $ shopify connect
32
+ ```
33
+
34
+ ## `create`
35
+
36
+ Create a new project of the specified type. The project will be created in a subdirectory of the current directory:
37
+
38
+ ```console
39
+ $ shopify create
40
+ ```
41
+
42
+ When running the `create` command on its own, the CLI will prompt you to choose a project type:
43
+
44
+ ```console
45
+ $ shopify create
46
+ ? What type of project would you like to create? (Choose with ↑ ↓ ⏎, filter with 'f')
47
+ > 1. Node.js App
48
+ 2. Ruby on Rails App
49
+ ```
50
+
51
+ You can also specify the type of app you want to create using a subcommand:
52
+ - For a Node.js app: `node`
53
+ - For a Ruby on Rails app: `rails`
54
+
55
+ If you specify a type, then Shopify App CLI will skip ahead and prompt you to enter a name for your project:
56
+
57
+ ```console
58
+ $ shopify create node
59
+ ? App Name
60
+ >
61
+ ```
62
+
63
+ ## `logout`
64
+
65
+ Log out of the currently authenticated partner organization and store. The `logout` command clears any invalid credentials. You’ll need to re-authenticate the next time you connect your project to Shopify.
66
+
67
+ ```console
68
+ $ shopify logout
69
+ ```
70
+
@@ -0,0 +1,157 @@
1
+ article {
2
+ padding: 30px 0;
3
+ color: #212326;
4
+ min-height: 80vh;
5
+ }
6
+
7
+ article a:link {
8
+ text-decoration: underline;
9
+ }
10
+
11
+ article a:hover {
12
+ text-decoration: none;
13
+ }
14
+
15
+ article h1,
16
+ article h2,
17
+ article h3,
18
+ article h4,
19
+ article h5,
20
+ article h6 {
21
+ margin-top: 1em;
22
+ }
23
+
24
+ article h1:first-child,
25
+ article h2:first-child,
26
+ article h3:first-child,
27
+ article h4:first-child,
28
+ article h5:first-child,
29
+ article h6:first-child {
30
+ margin-top: 0;
31
+ }
32
+
33
+ article ul {
34
+ list-style: disc;
35
+ margin-left: 20px;
36
+ }
37
+
38
+ article ol {
39
+ list-style: decimal;
40
+ margin-left: 20px;
41
+ }
42
+
43
+ blockquote {
44
+ margin: 0 0 30px 0;
45
+ padding: 20px 20px 10px 20px;
46
+ text-align: left;
47
+ background: #f0f1f2;
48
+ border-left: 4px solid #828a91;
49
+ }
50
+
51
+ blockquote b,
52
+ blockquote strong,
53
+ blockquote h4 {
54
+ margin-top: 0;
55
+ color: #647382;
56
+ }
57
+
58
+ blockquote h4 {
59
+ padding-left: 30px;
60
+ background-position: left top;
61
+ background-repeat: no-repeat;
62
+ background-size: 1em auto;
63
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2033.8%2039.5%22%3E%3Cstyle%20type=%22text/css%22%3Ecircle,%20ellipse,%20line,%20path,%20polygon,%20polyline,%20rect,%20text%20%7B%20fill:%20rgb(100,%20115,%20130)%20!important;%20%7D%3C/style%3E%3Cpath%20d=%22M13.3%2034.6c.2.1.4.2.7.4-.3-.1-.5-.2-.7-.4z%22/%3E%3Cpath%20d=%22M33%208c.7-1.2%201-2.6.6-4-.3-1.4-1.2-2.5-2.4-3.2-.7-.5-1.7-.8-2.6-.8-1.8%200-3.5.9-4.5%202.5-.8%201.3-1%202.8-.6%204.2-.7-.2-1.4-.3-2.2-.4-4.3-.4-8.6%201.4-11.3%204.9%200%200%200%20.1-.1.1-.3.3-.5.7-.7%201.1-.3.6-.6%201.1-.8%201.6-.8%201.8-2.1%203.2-3.9%204-1.6.7-2%20.7-2.1.7-.8.1-1.5.5-2%201.2-.4.7-.5%201.5-.2%202.3C1.3%2024.7%203%2026.9%205.3%2029l1.8%201.5c-.3.3-.5.6-.8%201-1.5%202.5-.7%205.7%201.7%207.2.8.5%201.8.8%202.7.8%201.8%200%203.5-.9%204.5-2.5.2-.3.4-.7.5-1.1.5.2%201%20.5%201.5.6%202.8%201.1%205.4%201.7%208%201.7h1.2c.8%200%201.5-.5%201.9-1.2.4-.7.5-1.6.2-2.3%200-.1-.2-.5-.3-2.2-.1-1.9.5-3.7%201.7-5.1l.1-.2c.4-.5.7-.9%201-1.4l.6-1.2v-.1c2-4.2%201.5-9.1-1.2-12.9-.3-.4-.6-.8-1-1.2C31%2010.1%2032.2%209.3%2033%208zM13.6%2036c-.6%201-1.6%201.5-2.8%201.5-.6%200-1.2-.2-1.7-.5-1.5-.9-2-2.9-1.1-4.5.2-.3.4-.6.7-.8.8.6%201.6%201.1%202.6%201.7.7.4%201.4.8%202%201.2.2.1.4.2.7.3-.1.4-.2.8-.4%201.1zm16.3-12.3c-.2.4-.3.7-.5%201-.2.4-.5.8-.9%201.2l-.1.1c-1%201.2-1.7%202.7-2%204.2-.1%200-.1.1-.2.1-1.6.4-11-2.6-16.2-8.9-.3-.4-1-.5-1.4-.1-.4.3-.5%201-.1%201.4%205%206.1%2014%209.7%2017.5%209.7h.3v.1c.1%201.9.3%202.6.5%202.9.1.2%200%20.4%200%20.5%200%20.1-.2.2-.4.2-2.7.2-5.3-.3-8.3-1.5-.8-.3-1.6-.7-2.5-1.1-1-.5-2.1-1.1-3.2-1.8s-2.1-1.3-3-2c-.9-.7-1.8-1.4-2.7-2.2-2.1-1.9-3.6-4-4.6-6.2-.1-.2%200-.4%200-.4%200-.1.2-.2.4-.2s.8-.1%202.8-.9c2.2-1%204-2.8%205-5%20.2-.4.4-.8.7-1.3.2-.3.4-.5.6-.8%200%200%200-.1.1-.1%202.2-2.9%205.9-4.5%209.6-4.1%201.6.2%203.2.7%204.6%201.6%201.2.8%202.3%201.7%203.1%202.9%202.2%203%202.6%207.1.9%2010.7zM31.3%207c-.6%201-1.6%201.5-2.8%201.5-.6%200-1.2-.2-1.7-.5-1.5-.9-2-2.9-1.1-4.5.6-1%201.6-1.5%202.8-1.5.6%200%201.2.2%201.7.5.7.5%201.3%201.2%201.5%202%20.2.8.1%201.7-.4%202.5z%22/%3E%3Cpath%20d=%22M22.8%2011.3c-.2.5-.7.8-1.2.7-.1%200-4.2-.7-8.8%208.5-.1.3-.5.5-.8.5-.2%200-.3%200-.4-.1-.5-.2-.7-.9-.5-1.3%205.5-10.9%2010.8-9.6%2011-9.5.6.1.9.7.7%201.2z%22/%3E%3C/svg%3E");
64
+ }
65
+
66
+ code {
67
+ font-family: Menlo, Monaco, Consolas, "Lucida Console", monospace;
68
+ padding: 0.5px 5px 2px;
69
+ border-radius: 5px;
70
+ background: #f4f6f8;
71
+ border: 1px solid #c4cdd5;
72
+ overflow-wrap: break-word;
73
+ }
74
+
75
+ h1 code, h2 code, h3 code, .on-this-page code {
76
+ background-color: transparent;
77
+ border: none;
78
+ padding: 0;
79
+ }
80
+
81
+ #PageContainer {
82
+ overflow: visible;
83
+ }
84
+
85
+ #Content {
86
+ }
87
+
88
+ #SidebarNav {
89
+ padding-top: 30px;
90
+ }
91
+
92
+ @media screen and (min-width: 46.875em) {
93
+ #SidebarNav {
94
+ position: -webkit-sticky;
95
+ position: -moz-sticky;
96
+ position: -ms-sticky;
97
+ position: -o-sticky;
98
+ position: sticky;
99
+ top: 0;
100
+ }
101
+ }
102
+
103
+ #SidebarNav .is-active {
104
+ font-weight: 700;
105
+ border-color: #212326;
106
+ }
107
+
108
+ .marketing-nav__logo__shopify {
109
+ width: 214px;
110
+ height: 32px;
111
+ }
112
+
113
+ .in-page-menu li > ul {
114
+ margin-left: 30px;
115
+ }
116
+
117
+ .in-page-menu li ul a {
118
+ border-left: 0;
119
+ }
120
+
121
+ .link--external {
122
+ background-image: url("data:image/svg+xml;charset=utf8,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20viewBox=%220%200%2020%2020%22%3E%3Cstyle%20type=%22text/css%22%3Ecircle,%20ellipse,%20line,%20path,%20polygon,%20polyline,%20rect,%20text%20%7B%20fill:%20rgb(92,%20106,%20196)%20!important;%20%7D%3C/style%3E%3Cpath%20d=%22M17%202c.553%200%201%20.448%201%201v5c0%20.552-.447%201-1%201s-1-.448-1-1V5.414l-7.293%207.293c-.195.195-.45.293-.707.293s-.512-.098-.707-.293c-.39-.39-.39-1.023%200-1.414L14.586%204H12c-.553%200-1-.448-1-1s.447-1%201-1h5zm-4%209c.553%200%201%20.448%201%201v5c0%20.552-.447%201-1%201H3c-.553%200-1-.448-1-1V7c0-.552.447-1%201-1h5c.553%200%201%20.448%201%201s-.447%201-1%201H4v8h8v-4c0-.552.447-1%201-1z%22/%3E%3C/svg%3E%0A");
123
+ background-position: right center;
124
+ background-repeat: no-repeat;
125
+ background-size: 16px 16px;
126
+ padding-right: 18px;
127
+ }
128
+
129
+ .footer-nav {
130
+ margin-bottom: 0;
131
+ border-bottom: 0;
132
+ }
133
+
134
+ /* Code highlights */
135
+
136
+ div.highlight {
137
+ color: #ffffff;
138
+ background-color: #000639;
139
+ border-radius: 5px;
140
+ margin-bottom: 15px;
141
+ }
142
+
143
+ pre.highlight {
144
+ font-size: 1em;
145
+ white-space: pre-wrap;
146
+ margin: 0;
147
+ overflow-x: auto;
148
+ text-align: left;
149
+ }
150
+
151
+ .highlight code {
152
+ display: block;
153
+ padding: 15px 0 15px 20px;
154
+ background: none;
155
+ border: none;
156
+ white-space: pre;
157
+ }
@@ -0,0 +1,61 @@
1
+ ---
2
+ title: Getting started
3
+ section: getting-started
4
+ ---
5
+
6
+ Developers should have some prior knowledge of the [Shopify app ecosystem](https://shopify.dev/concepts/apps). Shopify App CLI creates apps using either [Node.js](https://nodejs.org/) or [Ruby on Rails](https://rubyonrails.org/).
7
+
8
+ ## Requirements
9
+
10
+ - [Ruby](https://www.ruby-lang.org) 2.5.1+
11
+ - [Node.js](https://nodejs.org) 10.0.0+
12
+ - [curl](https://curl.haxx.se)
13
+ - A [Shopify partner account](https://partners.shopify.com/signup)
14
+ - A [Shopify development store](https://help.shopify.com/en/partners/dashboard/development-stores#create-a-development-store) to install and test apps
15
+ - An [ngrok](https://ngrok.com/) account (free or paid) for local development
16
+
17
+ ### Windows requirements
18
+
19
+ You’ll need to install the following tools to use Shopify App CLI on Windows:
20
+
21
+ - [Linux Subsystem for Windows](https://docs.microsoft.com/en-us/windows/wsl/install-win10)
22
+ - [Ubuntu VM](https://www.microsoft.com/en-ca/p/ubuntu/9nblggh4msv6)
23
+
24
+ ## Install
25
+
26
+ Shopify App CLI installs using a shell script. Download and run it in your terminal with one command:
27
+
28
+ ```console
29
+ eval "$(curl -sS https://raw.githubusercontent.com/Shopify/shopify-app-cli/master/install.sh)"
30
+ ```
31
+
32
+ [View shell script source](https://raw.githubusercontent.com/Shopify/shopify-app-cli/master/install.sh)
33
+
34
+
35
+ ## Uninstall
36
+
37
+ There are two steps to completely uninstall Shopify App CLI:
38
+
39
+ 1. Delete the CLI files
40
+ 1. Remove the `shopify` command from your shell profile
41
+
42
+ ### 1. Delete the CLI files
43
+
44
+ By default, Shopify App CLI is installed in your home directory. All the files are contained in a hidden directory called `.shopify-app-cli`. Delete that directory to uninstall.
45
+
46
+ ### 2. Remove the `shopify` command from your shell
47
+
48
+ During the install process, Shopify App CLI adds a line to your shell configuration. This line is typically located in the `.bash_profile` file in your home directory (depending on your system, it may also be found in `.bash_login` or `.profile`). It will look similar to this:
49
+
50
+ ```sh
51
+ # The line won’t look exactly like this. `HOME_DIR` will instead be the absolute path to your home directory.
52
+ if [[ -f /HOME_DIR/.shopify-cli/shopify.sh ]]; then source /HOME_DIR/.shopify-cli/shopify.sh; fi
53
+ ```
54
+
55
+ You can use `grep` to search for the correct file in your home directory. This command will return the name of the relevant file, and the line number where it appears:
56
+
57
+ ```console
58
+ $ grep -Ens "^if.+\.shopify-app-cli/shopify\.sh.+fi$" ~/\.*
59
+ ```
60
+
61
+ Deleting or commenting out the relevant line in your shell profile will remove `shopify` as a command. You may need to reload your shell.
@@ -0,0 +1,6 @@
1
+ ---
2
+ title: Start your app
3
+ toc: false
4
+ ---
5
+
6
+ Your app is not running, and no app URL has been set. Try running `shopify serve` in your project to get started.
Binary file
@@ -0,0 +1,27 @@
1
+ ---
2
+ title: Introduction
3
+ section: intro
4
+ toc: false
5
+ ---
6
+
7
+ Shopify App CLI helps you build Shopify apps faster. It quickly scaffolds Node.js and Ruby on Rails apps, and automates many common development tasks.
8
+
9
+ **[Get started with Shopify App CLI]({{ site.baseurl }}{% link getting-started/index.md %})**
10
+
11
+ ## Quick start
12
+
13
+ 1. Install Shopify App CLI:
14
+ ```console
15
+ $ eval "$(curl -sS https://raw.githubusercontent.com/Shopify/shopify-app-cli/master/install.sh)"
16
+ ```
17
+ 2. Create an app:
18
+ ```console
19
+ $ shopify create
20
+ ```
21
+ 3. Start and install your app on a Shopify Development store:
22
+ ```console
23
+ $ shopify serve
24
+ ```
25
+ ```console
26
+ $ shopify open
27
+ ```
@@ -0,0 +1,28 @@
1
+ # Installing Ruby
2
+
3
+ ## Mac OS
4
+
5
+ We recommend using [`ruby-install`][ruby-install] and [`chruby`][chruby] from Homebrew to manage ruby versions.
6
+
7
+ 1. Install [Homebrew][brew]
8
+ 1. Install `ruby-install` and `chruby`. Be sure to follow the instructions for adding the chruby shell hook to your ~/.bash_profile or ~/.zshrc file.
9
+
10
+ brew install ruby-install chruby
11
+
12
+ 1. Install ruby 2.5.1:
13
+
14
+ ruby-install ruby-2.5.1
15
+
16
+ 1. **Open a new terminal window** and activate ruby 2.5.1:
17
+
18
+ chruby ruby-2.5.1
19
+
20
+ 1. Run your Shopify App CLI command.
21
+
22
+ ## Linux
23
+
24
+ Ruby 2.5 is available for most recent versions of Ubuntu, including Trusty and Xenial, installable with `apt-get install ruby-2.5`. Look for it in your distributions package manager.
25
+
26
+ [brew]:https://brew.sh
27
+ [chruby]:https://github.com/postmodern/chruby
28
+ [ruby-install]:https://github.com/postmodern/ruby-install
@@ -0,0 +1,27 @@
1
+ require 'rbconfig'
2
+ require 'fileutils'
3
+
4
+ gem = File.expand_path('../../../', __FILE__)
5
+ exe = File.join(gem, 'bin', 'shopify')
6
+ script = exe + '.sh'
7
+ symlink = '/usr/local/bin/shopify'
8
+
9
+ script_content = <<~SCRIPT
10
+ #!/usr/bin/env bash
11
+ #{RbConfig.ruby} --disable=gems -I #{gem} #{exe} $@
12
+ SCRIPT
13
+
14
+ File.write(script, script_content)
15
+ FileUtils.chmod("+x", script)
16
+
17
+ makefile_content = <<~MAKEFILE
18
+ .PHONY: clean install
19
+
20
+ clean:
21
+ \t@sudo rm -f #{symlink}
22
+
23
+ install: clean
24
+ \t@sudo ln -s #{script} #{symlink}
25
+ MAKEFILE
26
+
27
+ File.write('Makefile', makefile_content)
@@ -0,0 +1,7 @@
1
+ # shellcheck shell=sh disable=1012,1001
2
+ \cat << 'EOF'
3
+ This install method for Shopify App CLI is no longer supported.
4
+
5
+ Please visit this page for complete instructions:
6
+ https://shopify.github.io/shopify-app-cli/migrate/
7
+ EOF
@@ -0,0 +1,81 @@
1
+ <%= comment %>
2
+ <% if constants.any? -%>
3
+ - [Constants](#constants)
4
+ <%- end -%>
5
+ <%- if attributes.any? -%>
6
+ - [Attributes](#attributes)
7
+ <%- end -%>
8
+ <%- if class_methods.any? -%>
9
+ - [Class Methods](#class-methods)
10
+ <%- class_methods.each do |method| -%>
11
+ - [<%= method.title %>](#<%= method.title.gsub("?", "") %>)
12
+ <%- end -%>
13
+ <%- end -%>
14
+ <%- if instance_methods.any? -%>
15
+ - [Instance Methods](#instance-methods)
16
+ <%- instance_methods.each do |method| -%>
17
+ - [<%= method.title %>](#<%= method.title.gsub("?", "") %>)
18
+ <%- end -%>
19
+ <%- end -%>
20
+ <%- if included.any? -%>
21
+ - [Includes](#includes)
22
+ <%- end -%>
23
+ <%- if extended.any? -%>
24
+ - [Extends](#extends)
25
+ <%- end -%>
26
+ <%- if constants.any? %>
27
+ ## Constants
28
+ <%- constants.each do |const| -%>
29
+ - `<%= const.title %>` <%= const.comment %>
30
+ <%- end -%>
31
+ <%- end -%>
32
+ <%- if attributes.any? %>
33
+ ## Attributes
34
+ <%- attributes.each do |attr| -%>
35
+ - `<%= attr.title %>` <%= attr.comment %>
36
+ <%- end -%>
37
+ <%- end -%>
38
+ <%- if class_methods.any? %>
39
+ ## Class Methods
40
+ <% class_methods.each do |method| %>
41
+ ### <%= method.title %>
42
+ `<%= method.signature %>`
43
+ <%= method.comment %>
44
+ <details><summary>see source</summary><p>
45
+
46
+ ```ruby
47
+ <%= method.source_code %>
48
+ ```
49
+ </p></details>
50
+
51
+ ---
52
+ <%- end -%>
53
+ <%- end -%>
54
+ <%- if instance_methods.any? %>
55
+ ## Instance Methods
56
+ <% instance_methods.each do |method| %>
57
+ ### <%= method.title %>
58
+ `<%= method.signature %>`
59
+ <%= method.comment %>
60
+ <details><summary>see source</summary><p>
61
+
62
+ ```ruby
63
+ <%= method.source_code %>
64
+ ```
65
+ </p></details>
66
+
67
+ ---
68
+ <%- end -%>
69
+ <%- end -%>
70
+ <%- if included.any? %>
71
+ ## Includes
72
+ <% included.each do |incld| %>
73
+ - <%= incld.title %>
74
+ <%- end -%>
75
+ <%- end -%>
76
+ <%- if extended.any? %>
77
+ ## Extends
78
+ <% extended.each do |incld| %>
79
+ - <%= incld.title %>
80
+ <%- end -%>
81
+ <%- end -%>