shopify-cli 2.30.0 → 2.32.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.
- 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
|