shopify-cli 2.30.0 → 2.32.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +13 -0
- data/Gemfile.lock +2 -2
- data/lib/project_types/theme/commands/common/root_helper.rb +22 -0
- data/lib/project_types/theme/commands/pull.rb +3 -0
- data/lib/project_types/theme/commands/push.rb +3 -0
- data/lib/project_types/theme/commands/serve.rb +4 -1
- data/lib/project_types/theme/commands/share.rb +6 -0
- data/lib/project_types/theme/messages/messages.rb +13 -11
- data/lib/project_types/theme/models/specification_handlers/theme.rb +19 -0
- data/lib/shopify_cli/release.rb +2 -4
- data/lib/shopify_cli/theme/syncer/uploader.rb +1 -1
- data/lib/shopify_cli/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b1f827e0b1d481a8fdd6e7160ef85d6e63bee0a7607f6bf148693956f901d67c
|
4
|
+
data.tar.gz: 5882878a69100c7ac97255c80a0ca868ca616be1eca5a523c3e1ddf1e8896dc4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5f2335aecb476e962d7283d33187acb94cae34a1b6b23f52f48ad890c4daaeeabf0afeaecb0a3740a57ac98c86a18a7f35422430da2eea5413472fc85c740360
|
7
|
+
data.tar.gz: 6e9b70d65c59e9531b44e270d752637999bccaaf844c7f89be659c04f3f6f343bd89ce72e1e25c46d0d16dc66873233a5268aba8aab2eed873e0a086a7af0b6a
|
data/CHANGELOG.md
CHANGED
@@ -2,6 +2,19 @@ From version 2.6.0, the sections in this file adhere to the [keep a changelog](h
|
|
2
2
|
|
3
3
|
## [Unreleased]
|
4
4
|
|
5
|
+
## Version 2.32.0 - 2022-11-14
|
6
|
+
|
7
|
+
### Added
|
8
|
+
* [#2680](https://github.com/Shopify/shopify-cli/pull/2680): Validate on `shopify theme share/pull/push/serve` if users are running the command in a theme/empty directory
|
9
|
+
|
10
|
+
### Fixed
|
11
|
+
* [#2683](https://github.com/Shopify/shopify-cli/pull/2683): Fix timeout issue with the `shopify theme push` command and the `--json` flag
|
12
|
+
|
13
|
+
## Version 2.31.0 - 2022-11-07
|
14
|
+
|
15
|
+
### Added
|
16
|
+
* [#2676](https://github.com/Shopify/shopify-cli/pull/2676): Introduce shorthand `-e` for `--theme-editor-sync` in `shopify theme serve`
|
17
|
+
|
5
18
|
## Version 2.30.0 - 2022-11-01
|
6
19
|
|
7
20
|
### Fixed
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
shopify-cli (2.
|
4
|
+
shopify-cli (2.32.0)
|
5
5
|
bugsnag (~> 6.22)
|
6
6
|
listen (~> 3.7.0)
|
7
7
|
theme-check (~> 1.11.0)
|
@@ -101,7 +101,7 @@ GEM
|
|
101
101
|
mocha (1.13.0)
|
102
102
|
multi_test (0.1.2)
|
103
103
|
multipart-post (2.1.1)
|
104
|
-
nokogiri (1.13.
|
104
|
+
nokogiri (1.13.9)
|
105
105
|
mini_portile2 (~> 2.8.0)
|
106
106
|
racc (~> 1.4)
|
107
107
|
octokit (4.22.0)
|
@@ -1,5 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
+
require "project_types/theme/models/specification_handlers/theme"
|
4
|
+
|
3
5
|
module Theme
|
4
6
|
class Command
|
5
7
|
module Common
|
@@ -35,8 +37,28 @@ module Theme
|
|
35
37
|
"."
|
36
38
|
end
|
37
39
|
|
40
|
+
def valid_theme_directory?(root)
|
41
|
+
Theme::Models::SpecificationHandlers::Theme.new(root).valid? ||
|
42
|
+
current_directory_confirmed?
|
43
|
+
end
|
44
|
+
|
45
|
+
def exist_and_not_empty?(root)
|
46
|
+
Dir.exist?(root) && !Dir[File.join(root, "*")].empty?
|
47
|
+
end
|
48
|
+
|
38
49
|
private
|
39
50
|
|
51
|
+
def current_directory_confirmed?
|
52
|
+
raise "Current theme directory can't be confirmed during tests" if @ctx.testing?
|
53
|
+
|
54
|
+
Forms::ConfirmStore.ask(
|
55
|
+
@ctx,
|
56
|
+
[],
|
57
|
+
title: @ctx.message("theme.confirm_current_directory"),
|
58
|
+
force: options.flags[:force],
|
59
|
+
).confirmed?
|
60
|
+
end
|
61
|
+
|
40
62
|
def default_argv(options)
|
41
63
|
options.parser.default_argv.compact
|
42
64
|
end
|
@@ -34,10 +34,13 @@ module Theme
|
|
34
34
|
flags[:ignores] ||= []
|
35
35
|
flags[:ignores] |= pattern
|
36
36
|
end
|
37
|
+
parser.on("-f", "--force") { flags[:force] = true }
|
37
38
|
end
|
38
39
|
|
39
40
|
def call(_args, name)
|
40
41
|
root = root_value(options, name)
|
42
|
+
return if exist_and_not_empty?(root) && !valid_theme_directory?(root)
|
43
|
+
|
41
44
|
delete = !options.flags[:nodelete]
|
42
45
|
theme = find_theme(root, **options.flags)
|
43
46
|
return if theme.nil?
|
@@ -39,10 +39,13 @@ module Theme
|
|
39
39
|
flags[:ignores] ||= []
|
40
40
|
flags[:ignores] |= pattern
|
41
41
|
end
|
42
|
+
parser.on("-f", "--force") { flags[:force] = true }
|
42
43
|
end
|
43
44
|
|
44
45
|
def call(_args, name)
|
45
46
|
root = root_value(options, name)
|
47
|
+
return unless valid_theme_directory?(root)
|
48
|
+
|
46
49
|
delete = !options.flags[:nodelete]
|
47
50
|
theme = find_theme(root, **options.flags)
|
48
51
|
return if theme.nil?
|
@@ -23,7 +23,7 @@ module Theme
|
|
23
23
|
parser.on("--port=PORT") { |port| flags[:port] = port.to_i }
|
24
24
|
parser.on("--poll") { flags[:poll] = true }
|
25
25
|
parser.on("--live-reload=MODE") { |mode| flags[:mode] = as_reload_mode(mode) }
|
26
|
-
parser.on("--theme-editor-sync") { flags[:editor_sync] = true }
|
26
|
+
parser.on("-e", "--theme-editor-sync") { flags[:editor_sync] = true }
|
27
27
|
parser.on("--stable") { flags[:stable] = true }
|
28
28
|
parser.on("-t", "--theme=NAME_OR_ID") { |theme| flags[:theme] = theme }
|
29
29
|
parser.on("-o", "--only=PATTERN", Conversions::IncludeGlob) do |pattern|
|
@@ -34,12 +34,15 @@ module Theme
|
|
34
34
|
flags[:ignores] ||= []
|
35
35
|
flags[:ignores] |= pattern
|
36
36
|
end
|
37
|
+
parser.on("-f", "--force") { flags[:force] = true }
|
37
38
|
end
|
38
39
|
|
39
40
|
def call(_args, name)
|
40
41
|
valid_authentication_method!
|
41
42
|
|
42
43
|
root = root_value(options, name)
|
44
|
+
return unless valid_theme_directory?(root)
|
45
|
+
|
43
46
|
flags = options.flags.dup
|
44
47
|
host = flags[:host] || DEFAULT_HTTP_HOST
|
45
48
|
|
@@ -11,8 +11,14 @@ module Theme
|
|
11
11
|
|
12
12
|
recommend_default_ruby_range
|
13
13
|
|
14
|
+
options do |parser, flags|
|
15
|
+
parser.on("-f", "--force") { flags[:force] = true }
|
16
|
+
end
|
17
|
+
|
14
18
|
def call(_args, name)
|
15
19
|
root = root_value(options, name)
|
20
|
+
return unless valid_theme_directory?(root)
|
21
|
+
|
16
22
|
theme = create_theme(root)
|
17
23
|
|
18
24
|
upload(theme)
|
@@ -18,6 +18,8 @@ module Theme
|
|
18
18
|
ENSURE_USER
|
19
19
|
stable_flag_suggestion: "If the current command isn't working as expected," \
|
20
20
|
" we suggest re-running the command with the {{command: --stable}} flag",
|
21
|
+
confirm_current_directory: "It doesn’t seem like you’re running this command in a theme directory. " \
|
22
|
+
"Are you sure you want to proceed?",
|
21
23
|
init: {
|
22
24
|
help: <<~HELP,
|
23
25
|
{{command:%s theme init}}: Clones a Git repository to use as a starting point for building a new theme.
|
@@ -123,17 +125,17 @@ module Theme
|
|
123
125
|
Usage: {{command:%s theme serve [ ROOT ]}}
|
124
126
|
|
125
127
|
Options:
|
126
|
-
{{command:-t, --theme=NAME_OR_ID}}
|
127
|
-
{{command:-o, --only}}
|
128
|
-
{{command:-x, --ignore}}
|
129
|
-
{{command
|
130
|
-
{{command:--
|
131
|
-
{{command:--
|
132
|
-
{{command:--
|
133
|
-
{{command:--live-reload=MODE}}
|
134
|
-
|
135
|
-
|
136
|
-
|
128
|
+
{{command:-t, --theme=NAME_OR_ID}} Theme ID or name of the remote theme.
|
129
|
+
{{command:-o, --only}} Hot reload only files that match the specified pattern.
|
130
|
+
{{command:-x, --ignore}} Skip hot reloading any files that match the specified pattern.
|
131
|
+
{{command:-e, --theme-editor-sync}} Synchronize Theme Editor updates in the local theme files.
|
132
|
+
{{command:--port=PORT}} Local port to serve theme preview from.
|
133
|
+
{{command:--poll}} Force polling to detect file changes.
|
134
|
+
{{command:--host=HOST}} Set which network interface the web server listens on. The default value is 127.0.0.1.
|
135
|
+
{{command:--live-reload=MODE}} The live reload mode switches the server behavior when a file is modified:
|
136
|
+
- {{command:hot-reload}} Hot reloads local changes to CSS and sections (default)
|
137
|
+
- {{command:full-page}} Always refreshes the entire page
|
138
|
+
- {{command:off}} Deactivate live reload
|
137
139
|
HELP
|
138
140
|
reload_mode_is_not_valid: "The live reload mode `%s` is not valid.",
|
139
141
|
try_a_valid_reload_mode: "Try a valid live reload mode: %s.",
|
@@ -0,0 +1,19 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Theme
|
4
|
+
module Models
|
5
|
+
module SpecificationHandlers
|
6
|
+
class Theme
|
7
|
+
REQUIRED_FOLDERS = %w(config layout sections templates)
|
8
|
+
|
9
|
+
def initialize(root)
|
10
|
+
@root = root
|
11
|
+
end
|
12
|
+
|
13
|
+
def valid?
|
14
|
+
REQUIRED_FOLDERS.all? { |required_folder| Dir.exist?(File.join(@root, required_folder)) }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
data/lib/shopify_cli/release.rb
CHANGED
@@ -120,10 +120,8 @@ module ShopifyCLI
|
|
120
120
|
end
|
121
121
|
|
122
122
|
def update_homebrew_repo
|
123
|
-
|
124
|
-
|
125
|
-
FileUtils.copy(source_file, homebrew_path)
|
126
|
-
end
|
123
|
+
source_file = File.join(package_dir, "shopify-cli@2.rb")
|
124
|
+
FileUtils.copy(source_file, homebrew_path)
|
127
125
|
Dir.chdir(homebrew_path) do
|
128
126
|
system_or_fail("git commit -am '#{homebrew_update_message}'", "commit homebrew update")
|
129
127
|
system_or_fail("git push -u origin #{homebrew_release_branch}", "push homebrew branch")
|
data/lib/shopify_cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shopify-cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.32.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shopify
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-11-
|
11
|
+
date: 2022-11-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -328,6 +328,7 @@ files:
|
|
328
328
|
- lib/project_types/theme/forms/confirm_store.rb
|
329
329
|
- lib/project_types/theme/forms/select.rb
|
330
330
|
- lib/project_types/theme/messages/messages.rb
|
331
|
+
- lib/project_types/theme/models/specification_handlers/theme.rb
|
331
332
|
- lib/project_types/theme/presenters/theme_presenter.rb
|
332
333
|
- lib/project_types/theme/presenters/themes_presenter.rb
|
333
334
|
- lib/project_types/theme/ui/sync_progress_bar.rb
|