@shopify/cli-kit 3.45.0 → 3.46.0-pre.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.
- package/assets/cli-ruby/Gemfile +0 -1
- package/assets/cli-ruby/Rakefile +0 -76
- package/assets/cli-ruby/lib/project_types/extension/cli.rb +5 -86
- package/assets/cli-ruby/lib/shopify_cli/admin_api.rb +0 -3
- package/assets/cli-ruby/lib/shopify_cli/command/sub_command.rb +1 -2
- package/assets/cli-ruby/lib/shopify_cli/command.rb +0 -7
- package/assets/cli-ruby/lib/shopify_cli/commands.rb +0 -15
- package/assets/cli-ruby/lib/shopify_cli/core.rb +0 -1
- package/assets/cli-ruby/lib/shopify_cli/identity_auth.rb +0 -1
- package/assets/cli-ruby/lib/shopify_cli/theme/dev_server/proxy.rb +9 -1
- package/assets/cli-ruby/lib/shopify_cli.rb +1 -10
- package/assets/cli-ruby/test/test_helpers.rb +0 -2
- package/dist/public/common/version.d.ts +1 -1
- package/dist/public/common/version.js +1 -1
- package/dist/public/common/version.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/assets/cli-ruby/lib/project_types/extension/commands/build.rb +0 -51
- package/assets/cli-ruby/lib/project_types/extension/commands/check.rb +0 -51
- package/assets/cli-ruby/lib/project_types/extension/commands/connect.rb +0 -35
- package/assets/cli-ruby/lib/project_types/extension/commands/create.rb +0 -100
- package/assets/cli-ruby/lib/project_types/extension/commands/info.rb +0 -86
- package/assets/cli-ruby/lib/project_types/extension/commands/push.rb +0 -112
- package/assets/cli-ruby/lib/project_types/extension/commands/register.rb +0 -67
- package/assets/cli-ruby/lib/project_types/extension/commands/tunnel.rb +0 -73
- package/assets/cli-ruby/lib/project_types/extension/forms/connect.rb +0 -42
- package/assets/cli-ruby/lib/project_types/extension/forms/create.rb +0 -49
- package/assets/cli-ruby/lib/project_types/extension/forms/questions/ask_app.rb +0 -53
- package/assets/cli-ruby/lib/project_types/extension/forms/questions/ask_name.rb +0 -48
- package/assets/cli-ruby/lib/project_types/extension/forms/questions/ask_registration.rb +0 -55
- package/assets/cli-ruby/lib/project_types/extension/forms/questions/ask_template.rb +0 -37
- package/assets/cli-ruby/lib/project_types/extension/forms/questions/ask_type.rb +0 -47
- package/assets/cli-ruby/lib/project_types/extension/models/development_server.rb +0 -77
- package/assets/cli-ruby/lib/project_types/extension/models/development_server_requirements.rb +0 -56
- package/assets/cli-ruby/lib/project_types/extension/models/npm_package.rb +0 -44
- package/assets/cli-ruby/lib/project_types/extension/models/product.rb +0 -12
- package/assets/cli-ruby/lib/project_types/extension/models/registration.rb +0 -20
- package/assets/cli-ruby/lib/project_types/extension/models/server_config/app.rb +0 -13
- package/assets/cli-ruby/lib/project_types/extension/models/server_config/base.rb +0 -31
- package/assets/cli-ruby/lib/project_types/extension/models/server_config/capabilities.rb +0 -11
- package/assets/cli-ruby/lib/project_types/extension/models/server_config/development.rb +0 -33
- package/assets/cli-ruby/lib/project_types/extension/models/server_config/development_entries.rb +0 -38
- package/assets/cli-ruby/lib/project_types/extension/models/server_config/development_renderer.rb +0 -38
- package/assets/cli-ruby/lib/project_types/extension/models/server_config/development_resource.rb +0 -13
- package/assets/cli-ruby/lib/project_types/extension/models/server_config/extension.rb +0 -46
- package/assets/cli-ruby/lib/project_types/extension/models/server_config/root.rb +0 -21
- package/assets/cli-ruby/lib/project_types/extension/models/server_config/user.rb +0 -10
- package/assets/cli-ruby/lib/project_types/extension/models/specification_handlers/checkout_post_purchase.rb +0 -29
- package/assets/cli-ruby/lib/project_types/extension/models/specification_handlers/checkout_ui_extension.rb +0 -170
- package/assets/cli-ruby/lib/project_types/extension/models/specification_handlers/web_pixel_extension.rb +0 -58
- package/assets/cli-ruby/lib/project_types/extension/models/specification_handlers/web_pixel_extension_utils/script_config.rb +0 -33
- package/assets/cli-ruby/lib/project_types/extension/models/specification_handlers/web_pixel_extension_utils/script_config_repository.rb +0 -75
- package/assets/cli-ruby/lib/project_types/extension/tasks/choose_next_available_port.rb +0 -36
- package/assets/cli-ruby/lib/project_types/extension/tasks/convert_server_config.rb +0 -85
- package/assets/cli-ruby/lib/project_types/extension/tasks/converters/app_converter.rb +0 -27
- package/assets/cli-ruby/lib/project_types/extension/tasks/converters/product_converter.rb +0 -21
- package/assets/cli-ruby/lib/project_types/extension/tasks/converters/registration_converter.rb +0 -28
- package/assets/cli-ruby/lib/project_types/extension/tasks/create_extension.rb +0 -31
- package/assets/cli-ruby/lib/project_types/extension/tasks/ensure_resource_url.rb +0 -39
- package/assets/cli-ruby/lib/project_types/extension/tasks/execute_commands/base.rb +0 -15
- package/assets/cli-ruby/lib/project_types/extension/tasks/execute_commands/build.rb +0 -30
- package/assets/cli-ruby/lib/project_types/extension/tasks/execute_commands/create.rb +0 -30
- package/assets/cli-ruby/lib/project_types/extension/tasks/execute_commands/outdated_extension_detection.rb +0 -57
- package/assets/cli-ruby/lib/project_types/extension/tasks/execute_commands/serve.rb +0 -36
- package/assets/cli-ruby/lib/project_types/extension/tasks/find_npm_packages.rb +0 -106
- package/assets/cli-ruby/lib/project_types/extension/tasks/find_package_from_json.rb +0 -37
- package/assets/cli-ruby/lib/project_types/extension/tasks/get_app.rb +0 -22
- package/assets/cli-ruby/lib/project_types/extension/tasks/get_apps.rb +0 -26
- package/assets/cli-ruby/lib/project_types/extension/tasks/get_extensions.rb +0 -33
- package/assets/cli-ruby/lib/project_types/extension/tasks/get_product.rb +0 -22
- package/assets/cli-ruby/lib/project_types/extension/tasks/merge_server_config.rb +0 -47
- package/assets/cli-ruby/lib/project_types/extension/tasks/update_draft.rb +0 -29
- package/assets/cli-ruby/lib/project_types/extension/tasks/user_errors.rb +0 -45
- package/assets/cli-ruby/lib/shopify_cli/admin_api/populate_resource_command.rb +0 -166
- package/assets/cli-ruby/lib/shopify_cli/admin_api/schema.rb +0 -35
- package/assets/cli-ruby/lib/shopify_cli/app_type_detector.rb +0 -36
- package/assets/cli-ruby/lib/shopify_cli/assets/post_auth_page/index.html.erb +0 -34
- package/assets/cli-ruby/lib/shopify_cli/assets/post_auth_page/style.css +0 -58
- package/assets/cli-ruby/lib/shopify_cli/changelog.rb +0 -148
- package/assets/cli-ruby/lib/shopify_cli/command/app_sub_command.rb +0 -26
- package/assets/cli-ruby/lib/shopify_cli/command_options/command_serve_options.rb +0 -53
- package/assets/cli-ruby/lib/shopify_cli/command_options.rb +0 -7
- package/assets/cli-ruby/lib/shopify_cli/commands/app/connect.rb +0 -22
- package/assets/cli-ruby/lib/shopify_cli/commands/app/create/node.rb +0 -40
- package/assets/cli-ruby/lib/shopify_cli/commands/app/create/php.rb +0 -37
- package/assets/cli-ruby/lib/shopify_cli/commands/app/create/rails.rb +0 -42
- package/assets/cli-ruby/lib/shopify_cli/commands/app/create.rb +0 -28
- package/assets/cli-ruby/lib/shopify_cli/commands/app/deploy.rb +0 -51
- package/assets/cli-ruby/lib/shopify_cli/commands/app/open.rb +0 -19
- package/assets/cli-ruby/lib/shopify_cli/commands/app/serve.rb +0 -51
- package/assets/cli-ruby/lib/shopify_cli/commands/app/tunnel.rb +0 -43
- package/assets/cli-ruby/lib/shopify_cli/commands/app.rb +0 -29
- package/assets/cli-ruby/lib/shopify_cli/commands/config.rb +0 -76
- package/assets/cli-ruby/lib/shopify_cli/commands/help.rb +0 -52
- package/assets/cli-ruby/lib/shopify_cli/commands/login.rb +0 -98
- package/assets/cli-ruby/lib/shopify_cli/commands/logout.rb +0 -50
- package/assets/cli-ruby/lib/shopify_cli/commands/populate/customer.rb +0 -25
- package/assets/cli-ruby/lib/shopify_cli/commands/populate/draft_order.rb +0 -28
- package/assets/cli-ruby/lib/shopify_cli/commands/populate/product.rb +0 -24
- package/assets/cli-ruby/lib/shopify_cli/commands/populate.rb +0 -23
- package/assets/cli-ruby/lib/shopify_cli/commands/reporting.rb +0 -38
- package/assets/cli-ruby/lib/shopify_cli/commands/store.rb +0 -15
- package/assets/cli-ruby/lib/shopify_cli/commands/switch.rb +0 -39
- package/assets/cli-ruby/lib/shopify_cli/commands/system.rb +0 -165
- package/assets/cli-ruby/lib/shopify_cli/commands/version.rb +0 -15
- package/assets/cli-ruby/lib/shopify_cli/commands/whoami.rb +0 -28
- package/assets/cli-ruby/lib/shopify_cli/connect.rb +0 -32
- package/assets/cli-ruby/lib/shopify_cli/core/help_resolver.rb +0 -20
- package/assets/cli-ruby/lib/shopify_cli/heroku.rb +0 -140
- package/assets/cli-ruby/lib/shopify_cli/identity_auth/servlet.rb +0 -44
- package/assets/cli-ruby/lib/shopify_cli/js_deps.rb +0 -110
- package/assets/cli-ruby/lib/shopify_cli/packager.rb +0 -108
- package/assets/cli-ruby/lib/shopify_cli/php_deps.rb +0 -102
- package/assets/cli-ruby/lib/shopify_cli/process_supervision.rb +0 -228
- package/assets/cli-ruby/lib/shopify_cli/project_commands.rb +0 -16
- package/assets/cli-ruby/lib/shopify_cli/release.rb +0 -197
- package/assets/cli-ruby/lib/shopify_cli/sed.rb +0 -19
- package/assets/cli-ruby/lib/shopify_cli/services/app/connect_service.rb +0 -25
- package/assets/cli-ruby/lib/shopify_cli/services/app/create/node_service.rb +0 -143
- package/assets/cli-ruby/lib/shopify_cli/services/app/create/php_service.rb +0 -147
- package/assets/cli-ruby/lib/shopify_cli/services/app/create/rails_service.rb +0 -239
- package/assets/cli-ruby/lib/shopify_cli/services/app/deploy/heroku/node_service.rb +0 -101
- package/assets/cli-ruby/lib/shopify_cli/services/app/deploy/heroku/php_service.rb +0 -135
- package/assets/cli-ruby/lib/shopify_cli/services/app/deploy/heroku/rails_service.rb +0 -120
- package/assets/cli-ruby/lib/shopify_cli/services/app/open_service.rb +0 -19
- package/assets/cli-ruby/lib/shopify_cli/services/app/serve/node_service.rb +0 -19
- package/assets/cli-ruby/lib/shopify_cli/services/app/serve/php_service.rb +0 -23
- package/assets/cli-ruby/lib/shopify_cli/services/app/serve/rails_service.rb +0 -28
- package/assets/cli-ruby/lib/shopify_cli/services/app/serve/serve_service.rb +0 -57
- package/assets/cli-ruby/lib/shopify_cli/services/app/tunnel/auth_service.rb +0 -21
- package/assets/cli-ruby/lib/shopify_cli/services/app/tunnel/start_service.rb +0 -20
- package/assets/cli-ruby/lib/shopify_cli/services/app/tunnel/stop_service.rb +0 -20
- package/assets/cli-ruby/lib/shopify_cli/services/base_service.rb +0 -13
- package/assets/cli-ruby/lib/shopify_cli/services/reporting_service.rb +0 -16
- package/assets/cli-ruby/lib/shopify_cli/services.rb +0 -38
- package/assets/cli-ruby/lib/shopify_cli/tunnel.rb +0 -255
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
require "shopify_cli"
|
|
2
|
-
require "rbconfig"
|
|
3
|
-
|
|
4
|
-
module ShopifyCLI
|
|
5
|
-
module Commands
|
|
6
|
-
class System < ShopifyCLI::Command
|
|
7
|
-
hidden_feature(feature_set: :debug)
|
|
8
|
-
|
|
9
|
-
def call(args, _name)
|
|
10
|
-
show_all_details = false
|
|
11
|
-
flag = args.shift
|
|
12
|
-
if flag && flag != "all"
|
|
13
|
-
@ctx.puts(@ctx.message("core.system.error.unknown_option", flag))
|
|
14
|
-
@ctx.puts("\n" + self.class.help)
|
|
15
|
-
return
|
|
16
|
-
end
|
|
17
|
-
|
|
18
|
-
show_all_details = true if flag == "all"
|
|
19
|
-
|
|
20
|
-
display_environment if show_all_details
|
|
21
|
-
|
|
22
|
-
display_cli_constants(show_all_details)
|
|
23
|
-
display_shopify_store(show_all_details)
|
|
24
|
-
display_cli_ruby(show_all_details)
|
|
25
|
-
display_utility_commands(show_all_details)
|
|
26
|
-
display_project_commands(show_all_details)
|
|
27
|
-
display_shopify_staff_identity if show_all_details
|
|
28
|
-
end
|
|
29
|
-
|
|
30
|
-
def self.help
|
|
31
|
-
ShopifyCLI::Context.message("core.system.help", ShopifyCLI::TOOL_NAME)
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
private
|
|
35
|
-
|
|
36
|
-
def display_cli_constants(show_all_details)
|
|
37
|
-
cli_constants = %w(ROOT)
|
|
38
|
-
cli_constants_extra = %w(
|
|
39
|
-
PROJECT_TYPES_DIR
|
|
40
|
-
TEMP_DIR
|
|
41
|
-
)
|
|
42
|
-
cli_path_methods = [
|
|
43
|
-
:cache_dir,
|
|
44
|
-
:tool_config_path,
|
|
45
|
-
:log_file,
|
|
46
|
-
:debug_log_file,
|
|
47
|
-
]
|
|
48
|
-
|
|
49
|
-
cli_constants += cli_constants_extra if show_all_details
|
|
50
|
-
|
|
51
|
-
@ctx.puts(@ctx.message("core.system.header"))
|
|
52
|
-
cli_constants.each do |s|
|
|
53
|
-
@ctx.puts(" " + @ctx.message("core.system.const", s, ShopifyCLI.const_get(s.to_sym)) + "\n")
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
if show_all_details
|
|
57
|
-
cli_path_methods.each do |m|
|
|
58
|
-
@ctx.puts(" " + @ctx.message("core.system.const", m.upcase, ShopifyCLI.send(m)) + "\n")
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
def display_shopify_store(_show_all_details)
|
|
64
|
-
shop = if ShopifyCLI::DB.exists?(:shop)
|
|
65
|
-
ShopifyCLI::AdminAPI.get_shop_or_abort(@ctx)
|
|
66
|
-
else
|
|
67
|
-
@ctx.message("core.populate.error.no_shop", ShopifyCLI::TOOL_NAME)
|
|
68
|
-
end
|
|
69
|
-
|
|
70
|
-
@ctx.puts("\n" + @ctx.message("core.system.shop_header"))
|
|
71
|
-
@ctx.puts(" " + shop)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
|
-
def display_cli_ruby(_show_all_details)
|
|
75
|
-
rbconfig_constants = %w(host RUBY_VERSION_NAME)
|
|
76
|
-
|
|
77
|
-
@ctx.puts("\n" + @ctx.message("core.system.ruby_header", RbConfig.ruby))
|
|
78
|
-
rbconfig_constants.each do |s|
|
|
79
|
-
@ctx.puts(" " + @ctx.message("core.system.rb_config", RbConfig::CONFIG[s], s))
|
|
80
|
-
end
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def display_utility_commands(_show_all_details)
|
|
84
|
-
commands = %w(git curl tar)
|
|
85
|
-
|
|
86
|
-
@ctx.puts("\n" + @ctx.message("core.system.command_header"))
|
|
87
|
-
commands.each do |s|
|
|
88
|
-
cmd_path = @ctx.which(s)
|
|
89
|
-
|
|
90
|
-
if !cmd_path.nil?
|
|
91
|
-
@ctx.puts(" " + @ctx.message("core.system.command_with_path", s, cmd_path))
|
|
92
|
-
else
|
|
93
|
-
@ctx.puts(" " + @ctx.message("core.system.command_not_found", s))
|
|
94
|
-
end
|
|
95
|
-
end
|
|
96
|
-
end
|
|
97
|
-
|
|
98
|
-
def display_ngrok
|
|
99
|
-
ngrok_location = File.join(ShopifyCLI.cache_dir, "ngrok#{@ctx.executable_file_extension}")
|
|
100
|
-
if File.exist?(ngrok_location)
|
|
101
|
-
@ctx.puts(" " + @ctx.message("core.system.ngrok_available", ngrok_location))
|
|
102
|
-
else
|
|
103
|
-
@ctx.puts(" " + @ctx.message("core.system.ngrok_not_available"))
|
|
104
|
-
end
|
|
105
|
-
end
|
|
106
|
-
|
|
107
|
-
def display_project_commands(_show_all_details)
|
|
108
|
-
case Project.current_project_type
|
|
109
|
-
when :node
|
|
110
|
-
display_project("Node.js", %w(npm node yarn))
|
|
111
|
-
when :rails
|
|
112
|
-
display_project("Rails", %w(gem rails rake ruby))
|
|
113
|
-
end
|
|
114
|
-
end
|
|
115
|
-
|
|
116
|
-
def display_project(project_type, commands)
|
|
117
|
-
@ctx.puts("\n" + @ctx.message("core.system.project.header", project_type))
|
|
118
|
-
commands.each do |s|
|
|
119
|
-
cmd_path = @ctx.which(s)
|
|
120
|
-
if !cmd_path.nil?
|
|
121
|
-
version_output, _ = @ctx.capture2e(s, "--version")
|
|
122
|
-
version = version_output.match(/(\d+\.[^\s]+)/)[0]
|
|
123
|
-
@ctx.puts(" " + @ctx.message("core.system.project.command_with_path", s, cmd_path.strip, version.strip))
|
|
124
|
-
else
|
|
125
|
-
@ctx.puts(" " + @ctx.message("core.system.project.command_not_found", s))
|
|
126
|
-
end
|
|
127
|
-
end
|
|
128
|
-
display_ngrok
|
|
129
|
-
display_project_environment
|
|
130
|
-
end
|
|
131
|
-
|
|
132
|
-
def display_project_environment
|
|
133
|
-
@ctx.puts("\n " + @ctx.message("core.system.project.env_header"))
|
|
134
|
-
if File.exist?("./.env")
|
|
135
|
-
Project.current.env.to_h.each do |k, v|
|
|
136
|
-
display_value = if v.nil? || v.strip == ""
|
|
137
|
-
@ctx.message("core.system.project.env_not_set")
|
|
138
|
-
else
|
|
139
|
-
k.match(/^SHOPIFY_API/) ? "********" : v
|
|
140
|
-
end
|
|
141
|
-
@ctx.puts(" " + @ctx.message("core.system.project.env", k, display_value))
|
|
142
|
-
end
|
|
143
|
-
else
|
|
144
|
-
@ctx.puts(" " + @ctx.message("core.system.project.no_env"))
|
|
145
|
-
end
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
def display_environment
|
|
149
|
-
@ctx.puts(@ctx.message("core.system.environment_header"))
|
|
150
|
-
%w(TERM SHELL PATH USING_SHOPIFY_CLI LANG).each do |k|
|
|
151
|
-
@ctx.puts(" " + @ctx.message("core.system.env", k, ENV[k])) unless ENV[k].nil?
|
|
152
|
-
end
|
|
153
|
-
@ctx.puts("")
|
|
154
|
-
end
|
|
155
|
-
|
|
156
|
-
def display_shopify_staff_identity
|
|
157
|
-
is_shopifolk = ShopifyCLI::Shopifolk.check
|
|
158
|
-
if is_shopifolk
|
|
159
|
-
@ctx.puts("\n" + @ctx.message("core.system.identity_header"))
|
|
160
|
-
@ctx.puts(" " + @ctx.message("core.system.identity_is_shopifolk"))
|
|
161
|
-
end
|
|
162
|
-
end
|
|
163
|
-
end
|
|
164
|
-
end
|
|
165
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
require "shopify_cli"
|
|
2
|
-
|
|
3
|
-
module ShopifyCLI
|
|
4
|
-
module Commands
|
|
5
|
-
class Version < ShopifyCLI::Command
|
|
6
|
-
def self.help
|
|
7
|
-
ShopifyCLI::Context.message("core.version.help", ShopifyCLI::TOOL_NAME)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def call(_args, _name)
|
|
11
|
-
@ctx.puts(ShopifyCLI::VERSION.to_s)
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
end
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
require "shopify_cli"
|
|
2
|
-
|
|
3
|
-
module ShopifyCLI
|
|
4
|
-
module Commands
|
|
5
|
-
class Whoami < ShopifyCLI::Command
|
|
6
|
-
def call(_args, _name)
|
|
7
|
-
shop = ShopifyCLI::DB.get(:shop)
|
|
8
|
-
org_id = ShopifyCLI::DB.get(:organization_id)
|
|
9
|
-
org = ShopifyCLI::PartnersAPI::Organizations.fetch(@ctx, id: org_id) unless org_id.nil?
|
|
10
|
-
|
|
11
|
-
output = if shop.nil? && org.nil?
|
|
12
|
-
@ctx.message("core.whoami.not_logged_in", ShopifyCLI::TOOL_NAME)
|
|
13
|
-
elsif !shop.nil? && org.nil?
|
|
14
|
-
@ctx.message("core.whoami.logged_in_shop_only", shop)
|
|
15
|
-
elsif shop.nil? && !org.nil?
|
|
16
|
-
@ctx.message("core.whoami.logged_in_partner_only", org["businessName"])
|
|
17
|
-
else
|
|
18
|
-
@ctx.message("core.whoami.logged_in_partner_and_shop", shop, org["businessName"])
|
|
19
|
-
end
|
|
20
|
-
@ctx.puts(output)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def self.help
|
|
24
|
-
ShopifyCLI::Context.message("core.whoami.help", ShopifyCLI::TOOL_NAME)
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
end
|
|
28
|
-
end
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
require "shopify_cli"
|
|
2
|
-
|
|
3
|
-
module ShopifyCLI
|
|
4
|
-
class Connect
|
|
5
|
-
def initialize(ctx)
|
|
6
|
-
@ctx = ctx
|
|
7
|
-
end
|
|
8
|
-
|
|
9
|
-
def default_connect(project_type)
|
|
10
|
-
if Project.current&.env
|
|
11
|
-
@ctx.puts(@ctx.message("core.connect.already_connected_warning"))
|
|
12
|
-
end
|
|
13
|
-
org = ShopifyCLI::Tasks::EnsureEnv.call(@ctx, regenerate: true)
|
|
14
|
-
write_cli_yml(project_type, org["id"]) unless Project.has_current?
|
|
15
|
-
api_key = Project.current(force_reload: true).env["api_key"]
|
|
16
|
-
get_app(org["apps"], api_key).first["title"]
|
|
17
|
-
end
|
|
18
|
-
|
|
19
|
-
def write_cli_yml(project_type, org_id)
|
|
20
|
-
ShopifyCLI::Project.write(
|
|
21
|
-
@ctx,
|
|
22
|
-
project_type: project_type,
|
|
23
|
-
organization_id: org_id,
|
|
24
|
-
)
|
|
25
|
-
@ctx.done(@ctx.message("core.connect.cli_yml_saved"))
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def get_app(apps, api_key)
|
|
29
|
-
apps.select { |app| app["apiKey"] == api_key }
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
require "cli/kit"
|
|
2
|
-
|
|
3
|
-
module ShopifyCLI
|
|
4
|
-
module Core
|
|
5
|
-
class HelpResolver < CLI::Kit::Resolver
|
|
6
|
-
def call(args)
|
|
7
|
-
args = args.dup
|
|
8
|
-
return super(args) unless args.first
|
|
9
|
-
if args.first.include?("-h") || args.first.include?("--help")
|
|
10
|
-
help = Commands::Help
|
|
11
|
-
help.ctx = Context.new
|
|
12
|
-
help.call([], nil)
|
|
13
|
-
raise ShopifyCLI::AbortSilent
|
|
14
|
-
else
|
|
15
|
-
super(args)
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
module ShopifyCLI
|
|
2
|
-
class Heroku
|
|
3
|
-
DOWNLOAD_URLS = {
|
|
4
|
-
linux: "https://cli-assets.heroku.com/heroku-linux-x64.tar.gz",
|
|
5
|
-
mac: "https://cli-assets.heroku.com/heroku-darwin-x64.tar.gz",
|
|
6
|
-
windows: "https://cli-assets.heroku.com/heroku-x64.exe",
|
|
7
|
-
mac_m1: "https://cli-assets.heroku.com/heroku-darwin-x64.tar.gz",
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
def initialize(ctx)
|
|
11
|
-
@ctx = ctx
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def app
|
|
15
|
-
return nil unless (app = git_remote)
|
|
16
|
-
app = app.split("/").last
|
|
17
|
-
app = app.split(".").first
|
|
18
|
-
app
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
def authenticate
|
|
22
|
-
result = @ctx.system(heroku_command, "login")
|
|
23
|
-
@ctx.abort(@ctx.message("core.heroku.error.authentication")) unless result.success?
|
|
24
|
-
end
|
|
25
|
-
|
|
26
|
-
def create_new_app
|
|
27
|
-
output, status = @ctx.capture2e(heroku_command, "create")
|
|
28
|
-
@ctx.abort(@ctx.message("core.heroku.error.creation")) unless status.success?
|
|
29
|
-
@ctx.puts(output)
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def deploy(branch_to_deploy)
|
|
33
|
-
result = @ctx.system("git", "push", "-u", "heroku", "#{branch_to_deploy}:master")
|
|
34
|
-
@ctx.abort(@ctx.message("core.heroku.error.deploy")) unless result.success?
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def download
|
|
38
|
-
return if installed?
|
|
39
|
-
|
|
40
|
-
result = @ctx.system("curl", "-o", download_path, DOWNLOAD_URLS[@ctx.os], chdir: ShopifyCLI.cache_dir)
|
|
41
|
-
@ctx.abort(@ctx.message("core.heroku.error.download")) unless result.success?
|
|
42
|
-
@ctx.abort(@ctx.message("core.heroku.error.download")) unless File.exist?(download_path)
|
|
43
|
-
end
|
|
44
|
-
|
|
45
|
-
def install
|
|
46
|
-
return if installed?
|
|
47
|
-
|
|
48
|
-
result = if @ctx.windows?
|
|
49
|
-
@ctx.system("\"#{download_path}\"")
|
|
50
|
-
else
|
|
51
|
-
@ctx.system("tar", "-xf", download_path, chdir: ShopifyCLI.cache_dir)
|
|
52
|
-
end
|
|
53
|
-
@ctx.abort(@ctx.message("core.heroku.error.install")) unless result.success?
|
|
54
|
-
|
|
55
|
-
@ctx.rm(download_path)
|
|
56
|
-
end
|
|
57
|
-
|
|
58
|
-
def select_existing_app(app_name)
|
|
59
|
-
result = @ctx.system(heroku_command, "git:remote", "-a", app_name)
|
|
60
|
-
|
|
61
|
-
msg = @ctx.message("core.heroku.error.could_not_select_app", app_name)
|
|
62
|
-
@ctx.abort(msg) unless result.success?
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def whoami
|
|
66
|
-
output, status = @ctx.capture2e(heroku_command, "whoami")
|
|
67
|
-
return output.strip if status.success?
|
|
68
|
-
nil
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def get_config(config)
|
|
72
|
-
output, status = @ctx.capture2e(heroku_command, "config:get", config.to_s)
|
|
73
|
-
return output.strip if status.success?
|
|
74
|
-
nil
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
def set_config(config, value)
|
|
78
|
-
result = @ctx.system(heroku_command, "config:set", "#{config}=#{value}")
|
|
79
|
-
|
|
80
|
-
msg = @ctx.message("core.heroku.error.set_config", config, value)
|
|
81
|
-
@ctx.abort(msg) unless result.success?
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def add_buildpacks(buildpacks)
|
|
85
|
-
result = @ctx.system(heroku_command, "buildpacks:clear")
|
|
86
|
-
msg = @ctx.message("core.heroku.error.add_buildpacks")
|
|
87
|
-
@ctx.abort(msg) unless result.success?
|
|
88
|
-
|
|
89
|
-
buildpacks.each do |buildpack|
|
|
90
|
-
result = @ctx.system(heroku_command, "buildpacks:add", buildpack)
|
|
91
|
-
msg = @ctx.message("core.heroku.error.add_buildpacks")
|
|
92
|
-
@ctx.abort(msg) unless result.success?
|
|
93
|
-
end
|
|
94
|
-
end
|
|
95
|
-
|
|
96
|
-
def heroku_command
|
|
97
|
-
local_path = File.join(ShopifyCLI.cache_dir, "heroku", "bin", "heroku").to_s
|
|
98
|
-
if File.exist?(local_path)
|
|
99
|
-
local_path
|
|
100
|
-
elsif @ctx.windows?
|
|
101
|
-
begin
|
|
102
|
-
# Check if Heroku exists in the Windows registry and run it from there
|
|
103
|
-
require "win32/registry"
|
|
104
|
-
|
|
105
|
-
windows_path = Win32::Registry::HKEY_CURRENT_USER.open('SOFTWARE\heroku') do |reg|
|
|
106
|
-
reg[""] # This reads the 'Default' registry key
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
File.join(windows_path, "bin", "heroku").to_s
|
|
110
|
-
rescue StandardError, LoadError
|
|
111
|
-
"heroku"
|
|
112
|
-
end
|
|
113
|
-
else
|
|
114
|
-
"heroku"
|
|
115
|
-
end
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
private
|
|
119
|
-
|
|
120
|
-
def download_filename
|
|
121
|
-
URI.parse(DOWNLOAD_URLS[@ctx.os]).path.split("/").last
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
def download_path
|
|
125
|
-
File.join(ShopifyCLI.cache_dir, download_filename)
|
|
126
|
-
end
|
|
127
|
-
|
|
128
|
-
def git_remote
|
|
129
|
-
output, status = @ctx.capture2e("git", "remote", "get-url", "heroku")
|
|
130
|
-
status.success? ? output : nil
|
|
131
|
-
end
|
|
132
|
-
|
|
133
|
-
def installed?
|
|
134
|
-
_output, status = @ctx.capture2e(heroku_command, "--version")
|
|
135
|
-
status.success?
|
|
136
|
-
rescue
|
|
137
|
-
false
|
|
138
|
-
end
|
|
139
|
-
end
|
|
140
|
-
end
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
module ShopifyCLI
|
|
2
|
-
class IdentityAuth
|
|
3
|
-
class Servlet < WEBrick::HTTPServlet::AbstractServlet
|
|
4
|
-
ERB_FILENAME = File.join(ROOT, "lib/shopify_cli/assets/post_auth_page/index.html.erb")
|
|
5
|
-
CSS_FILENAME = File.join(ROOT, "lib/shopify_cli/assets/post_auth_page/style.css")
|
|
6
|
-
|
|
7
|
-
def initialize(server, identity_auth, token)
|
|
8
|
-
super
|
|
9
|
-
@server = server
|
|
10
|
-
@identity_auth = identity_auth
|
|
11
|
-
@state_token = token
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def do_GET(req, res) # rubocop:disable Naming/MethodName
|
|
15
|
-
if !req.query["error"].nil?
|
|
16
|
-
respond_with(
|
|
17
|
-
res,
|
|
18
|
-
400,
|
|
19
|
-
Context.message("core.identity_auth.servlet.invalid_request_response", req.query["error_description"])
|
|
20
|
-
)
|
|
21
|
-
elsif req.query["state"] != @state_token
|
|
22
|
-
response_message = Context.message("core.identity_auth.servlet.invalid_state_response")
|
|
23
|
-
req.query.merge!("error" => "invalid_state", "error_description" => response_message)
|
|
24
|
-
respond_with(res, 403, response_message)
|
|
25
|
-
else
|
|
26
|
-
respond_with(res, 200, Context.message("core.identity_auth.servlet.success_response"))
|
|
27
|
-
end
|
|
28
|
-
@identity_auth.response_query = req.query
|
|
29
|
-
@server.shutdown
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def respond_with(response, status, message)
|
|
33
|
-
successful = status == 200
|
|
34
|
-
locals = {
|
|
35
|
-
status: status,
|
|
36
|
-
message: message,
|
|
37
|
-
css: File.read(CSS_FILENAME),
|
|
38
|
-
}
|
|
39
|
-
response.status = status
|
|
40
|
-
response.body = ERB.new(File.read(ERB_FILENAME)).result(binding)
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|
|
@@ -1,110 +0,0 @@
|
|
|
1
|
-
require "shopify_cli"
|
|
2
|
-
|
|
3
|
-
module ShopifyCLI
|
|
4
|
-
##
|
|
5
|
-
# ShopifyCLI::JsDeps ensures that all JavaScript dependencies are installed for projects.
|
|
6
|
-
#
|
|
7
|
-
class JsDeps
|
|
8
|
-
include SmartProperties
|
|
9
|
-
|
|
10
|
-
property! :ctx, accepts: ShopifyCLI::Context
|
|
11
|
-
property! :system, accepts: JsSystem, default: -> { JsSystem.new(ctx: ctx) }
|
|
12
|
-
|
|
13
|
-
##
|
|
14
|
-
# Proxy to instance method ShopifyCLI::JsDeps.new.install.
|
|
15
|
-
#
|
|
16
|
-
# #### Parameters
|
|
17
|
-
# - `ctx`: running context from your command
|
|
18
|
-
# - `verbose`: whether to run the installation tools in silent mode
|
|
19
|
-
#
|
|
20
|
-
# #### Example
|
|
21
|
-
#
|
|
22
|
-
# ShopifyCLI::JsDeps.install(ctx)
|
|
23
|
-
#
|
|
24
|
-
def self.install(ctx, verbose = false)
|
|
25
|
-
new(ctx: ctx).install(verbose)
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
##
|
|
29
|
-
# Installs all of a project's JavaScript dependencies using Yarn or NPM, based on the project's settings.
|
|
30
|
-
#
|
|
31
|
-
# #### Parameters
|
|
32
|
-
# - `verbose`: whether to run the installation tools in silent mode
|
|
33
|
-
#
|
|
34
|
-
# #### Example
|
|
35
|
-
#
|
|
36
|
-
# # context is the running context for the command
|
|
37
|
-
# ShopifyCLI::JsDeps.new(context).install(true)
|
|
38
|
-
#
|
|
39
|
-
def install(verbose = false)
|
|
40
|
-
title = ctx.message("core.js_deps.installing", @system.package_manager)
|
|
41
|
-
success = ctx.message("core.js_deps.installed")
|
|
42
|
-
failure = ctx.message("core.js_deps.error.install_error", @system.package_manager)
|
|
43
|
-
|
|
44
|
-
CLI::UI::Frame.open(title, success_text: success, failure_text: failure) do
|
|
45
|
-
@system.call(
|
|
46
|
-
yarn: -> { yarn(verbose) },
|
|
47
|
-
npm: -> { npm(verbose) }
|
|
48
|
-
)
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
private
|
|
53
|
-
|
|
54
|
-
def yarn(verbose = false)
|
|
55
|
-
cmd = %w(yarn install)
|
|
56
|
-
cmd << "--silent" unless verbose
|
|
57
|
-
|
|
58
|
-
run_install_command(cmd)
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
def npm(verbose = false)
|
|
62
|
-
cmd = %w(npm install --no-audit)
|
|
63
|
-
cmd << "--quiet" unless verbose
|
|
64
|
-
|
|
65
|
-
run_install_command(cmd)
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
def run_install_command(cmd)
|
|
69
|
-
deps = parse_dependencies
|
|
70
|
-
errors = nil
|
|
71
|
-
|
|
72
|
-
spinner_title = ctx.message("core.js_deps.installing", @system.package_manager)
|
|
73
|
-
success = CLI::UI::Spinner.spin(spinner_title, auto_debrief: false) do |spinner|
|
|
74
|
-
_, errors, status = CLI::Kit::System.capture3(*cmd, env: @ctx.env, chdir: ctx.root)
|
|
75
|
-
update_spinner_title_and_status(spinner, status, deps)
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
errors.lines.each { |e| ctx.puts e } unless success || errors.nil?
|
|
79
|
-
success
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
def update_spinner_title_and_status(spinner, status, deps)
|
|
83
|
-
if status.success?
|
|
84
|
-
spinner.update_title(ctx.message("core.js_deps.installed", deps.size))
|
|
85
|
-
else
|
|
86
|
-
spinner.update_title(ctx.message("core.js_deps.error.install_spinner_error", deps.size))
|
|
87
|
-
CLI::UI::Spinner::TASK_FAILED
|
|
88
|
-
end
|
|
89
|
-
end
|
|
90
|
-
|
|
91
|
-
def parse_dependencies
|
|
92
|
-
package_json = File.join(ctx.root, "package.json")
|
|
93
|
-
pkg = begin
|
|
94
|
-
JSON.parse(File.read(package_json))
|
|
95
|
-
rescue Errno::ENOENT, Errno::ENOTDIR
|
|
96
|
-
ctx.abort(ctx.message("core.js_deps.error.missing_package", package_json))
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
%w(dependencies devDependencies).map do |key|
|
|
100
|
-
pkg.fetch(key, []).keys
|
|
101
|
-
end.flatten
|
|
102
|
-
rescue JSON::ParserError
|
|
103
|
-
ctx.puts(
|
|
104
|
-
ctx.message("core.js_deps.error.invalid_package", File.read(File.join(path, "package.json"))),
|
|
105
|
-
error: true
|
|
106
|
-
)
|
|
107
|
-
raise ShopifyCLI::AbortSilent
|
|
108
|
-
end
|
|
109
|
-
end
|
|
110
|
-
end
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
module ShopifyCLI
|
|
2
|
-
class Packager
|
|
3
|
-
PACKAGING_DIR = File.join(ShopifyCLI::ROOT, "packaging")
|
|
4
|
-
BUILDS_DIR = File.join(PACKAGING_DIR, "builds", ShopifyCLI::VERSION)
|
|
5
|
-
|
|
6
|
-
def initialize
|
|
7
|
-
FileUtils.mkdir_p(BUILDS_DIR)
|
|
8
|
-
end
|
|
9
|
-
|
|
10
|
-
def build_debian
|
|
11
|
-
ensure_program_installed("dpkg-deb", "brew install dpkg")
|
|
12
|
-
|
|
13
|
-
root_dir = File.join(PACKAGING_DIR, "debian")
|
|
14
|
-
debian_dir = File.join(root_dir, "shopify-cli", "DEBIAN")
|
|
15
|
-
FileUtils.mkdir_p(debian_dir)
|
|
16
|
-
|
|
17
|
-
puts "\nBuilding Debian package"
|
|
18
|
-
|
|
19
|
-
puts "Generating metadata files…"
|
|
20
|
-
Dir.glob("#{debian_dir}/*").each { |file| File.delete(file) }
|
|
21
|
-
|
|
22
|
-
metadata_files = %w(control preinst prerm)
|
|
23
|
-
metadata_files.each do |file|
|
|
24
|
-
file_path = File.join(debian_dir, file)
|
|
25
|
-
|
|
26
|
-
file_contents = File.read(File.join(root_dir, "#{file}.base"))
|
|
27
|
-
file_contents = file_contents.gsub("SHOPIFY_CLI_VERSION", ShopifyCLI::VERSION)
|
|
28
|
-
File.open(file_path, "w", 0775) { |f| f.write(file_contents) }
|
|
29
|
-
end
|
|
30
|
-
|
|
31
|
-
puts "Building package…"
|
|
32
|
-
Dir.chdir(root_dir)
|
|
33
|
-
raise "Failed to build package" unless system("dpkg-deb", "-b", "shopify-cli")
|
|
34
|
-
|
|
35
|
-
output_path = File.join(root_dir, "shopify-cli.deb")
|
|
36
|
-
final_path = File.join(BUILDS_DIR, "shopify-cli-#{ShopifyCLI::VERSION}.deb")
|
|
37
|
-
|
|
38
|
-
puts "Moving generated package: \n From: #{output_path}\n To: #{final_path}\n\n"
|
|
39
|
-
FileUtils.mv(output_path, final_path)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def build_rpm
|
|
43
|
-
ensure_program_installed("rpmbuild", "brew install rpm")
|
|
44
|
-
|
|
45
|
-
root_dir = File.join(PACKAGING_DIR, "rpm")
|
|
46
|
-
rpm_build_dir = File.join(root_dir, "build")
|
|
47
|
-
FileUtils.mkdir_p(rpm_build_dir)
|
|
48
|
-
|
|
49
|
-
spec_path = File.join(root_dir, "shopify-cli.spec")
|
|
50
|
-
puts "\nBuilding RPM package"
|
|
51
|
-
|
|
52
|
-
puts "Generating spec file…"
|
|
53
|
-
File.delete(spec_path) if File.exist?(spec_path)
|
|
54
|
-
|
|
55
|
-
spec_contents = File.read(File.join(root_dir, "shopify-cli.spec.base"))
|
|
56
|
-
spec_contents = spec_contents.gsub("SHOPIFY_CLI_VERSION", ShopifyCLI::VERSION)
|
|
57
|
-
File.write(spec_path, spec_contents)
|
|
58
|
-
|
|
59
|
-
puts "Building package…"
|
|
60
|
-
Dir.chdir(root_dir)
|
|
61
|
-
system("rpmbuild", "-bb", File.basename(spec_path))
|
|
62
|
-
|
|
63
|
-
output_dir = File.join(root_dir, "build", "noarch")
|
|
64
|
-
|
|
65
|
-
puts "Moving generated packages: \n From: #{output_dir}\n To: #{BUILDS_DIR}\n\n"
|
|
66
|
-
FileUtils.mv(Dir.glob("#{output_dir}/*.rpm"), BUILDS_DIR)
|
|
67
|
-
end
|
|
68
|
-
|
|
69
|
-
def build_homebrew
|
|
70
|
-
root_dir = File.join(PACKAGING_DIR, "homebrew")
|
|
71
|
-
|
|
72
|
-
build_path = File.join(BUILDS_DIR, "shopify-cli@2.rb")
|
|
73
|
-
puts "\nBuilding Homebrew package"
|
|
74
|
-
|
|
75
|
-
puts "Generating formula…"
|
|
76
|
-
File.delete(build_path) if File.exist?(build_path)
|
|
77
|
-
|
|
78
|
-
spec_contents = File.read(File.join(root_dir, "shopify-cli@2.base.rb"))
|
|
79
|
-
spec_contents = spec_contents.gsub("SHOPIFY_CLI_VERSION", ShopifyCLI::VERSION)
|
|
80
|
-
|
|
81
|
-
puts "Grabbing sha256 checksum from Rubygems.org"
|
|
82
|
-
require "digest/sha2"
|
|
83
|
-
require "open-uri"
|
|
84
|
-
gem_checksum = URI.open("https://rubygems.org/downloads/shopify-cli-#{ShopifyCLI::VERSION}.gem") do |io|
|
|
85
|
-
Digest::SHA256.new.hexdigest(io.read)
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
puts "Got sha256 checksum for gem: #{gem_checksum}"
|
|
89
|
-
spec_contents = spec_contents.gsub("SHOPIFY_CLI_GEM_CHECKSUM", gem_checksum)
|
|
90
|
-
|
|
91
|
-
puts "Writing generated formula\n To: #{build_path}\n\n"
|
|
92
|
-
File.write(build_path, spec_contents)
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
private
|
|
96
|
-
|
|
97
|
-
def ensure_program_installed(program, installation_cmd)
|
|
98
|
-
unless system(program, "--version", out: File::NULL, err: File::NULL)
|
|
99
|
-
raise <<~MESSAGE
|
|
100
|
-
|
|
101
|
-
Could not find program #{program} which is required to build the package.
|
|
102
|
-
You can install it by running #{installation_cmd}.
|
|
103
|
-
|
|
104
|
-
MESSAGE
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
end
|