bootic_cli 0.5.2 → 0.5.3
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/README.md +0 -6
- data/bootic_cli.gemspec +2 -2
- data/lib/bootic_cli/commands/themes.rb +27 -5
- data/lib/bootic_cli/themes/api_theme.rb +2 -2
- data/lib/bootic_cli/themes/theme_selector.rb +8 -0
- data/lib/bootic_cli/themes/workflows.rb +21 -19
- data/lib/bootic_cli/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 124176a77bce62cae1afe8e3c7804df89e862462
|
4
|
+
data.tar.gz: 82ab73189ede38c158b8359bd31e54d410837ea3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 07cbc4c6fb1d172f4b716be085e5074cca7a1f92da1d7fb0cd1d9292af5e554feba61bad3199508f4ab53f127abdec97f2e6ed34b5f57596614c26dcec4857a4
|
7
|
+
data.tar.gz: 73c3a3dd9c2e07170feb84b10bd25bb1a62d52e08d9bbd18b2c20c60a5bee6eef0e0405fc0728da08432c8ed2e6ed2226d1253d10258298a816fa1627875c0e1
|
data/README.md
CHANGED
@@ -98,12 +98,6 @@ bootic help list_products
|
|
98
98
|
bootic list_products list -s hidden
|
99
99
|
```
|
100
100
|
|
101
|
-
## Development
|
102
|
-
|
103
|
-
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment. Run `bundle exec bootic` to use the code located in this directory, ignoring other installed copies of this gem.
|
104
|
-
|
105
|
-
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release` to create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
106
|
-
|
107
101
|
## Contributing
|
108
102
|
|
109
103
|
1. Fork it ( https://github.com/bootic/bootic_cli/fork )
|
data/bootic_cli.gemspec
CHANGED
@@ -6,8 +6,8 @@ require 'bootic_cli/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "bootic_cli"
|
8
8
|
spec.version = BooticCli::VERSION
|
9
|
-
spec.authors = ["Ismael Celis"]
|
10
|
-
spec.email = ["ismael@bootic.io"]
|
9
|
+
spec.authors = ["Ismael Celis", "Tomás Pollak"]
|
10
|
+
spec.email = ["ismael@bootic.io", "tomas@bootic.io"]
|
11
11
|
|
12
12
|
spec.summary = %q{Bootic command-line client.}
|
13
13
|
spec.description = %q{Bootic command-line client.}
|
@@ -31,6 +31,22 @@ module BooticCli
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
|
+
desc 'dev', 'Create a development theme for your current shop'
|
35
|
+
def dev
|
36
|
+
within_theme do
|
37
|
+
local_theme, remote_theme = theme_selector.select_theme_pair(default_subdomain, current_dir)
|
38
|
+
unless remote_theme.public?
|
39
|
+
prompt.say "You already have a development theme set up!", :red
|
40
|
+
abort
|
41
|
+
end
|
42
|
+
|
43
|
+
local_theme = theme_selector.create_dev_theme(current_dir)
|
44
|
+
prompt.say "Success! You're now working on a development copy of your theme."
|
45
|
+
prompt.say "Any changes you push or sync won't appear on your public website, but on the development version."
|
46
|
+
prompt.say "Once you're ready to merge your changes back, run the `publish` command."
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
34
50
|
desc 'pull', 'Pull remote changes into current theme directory'
|
35
51
|
option :public, banner: '<true|false>', type: :boolean, aliases: '-p', desc: 'Pull from public theme, even if dev theme exists'
|
36
52
|
option :delete, banner: '<true|false>', type: :boolean, desc: 'Remove local files that were removed in remote theme (default: true)'
|
@@ -54,7 +70,7 @@ module BooticCli
|
|
54
70
|
end
|
55
71
|
end
|
56
72
|
|
57
|
-
desc 'sync', 'Sync changes
|
73
|
+
desc 'sync', 'Sync changes between local and remote themes'
|
58
74
|
option :public, banner: '<true|false>', type: :boolean, aliases: '-p', desc: 'Sync to public theme, even if dev theme exists'
|
59
75
|
def sync
|
60
76
|
within_theme do
|
@@ -65,12 +81,17 @@ module BooticCli
|
|
65
81
|
end
|
66
82
|
end
|
67
83
|
|
68
|
-
desc 'compare', 'Show differences between local and remote copies'
|
69
|
-
option :public, banner: '<true|false>', type: :boolean, aliases: '-p', desc: 'Compare against public theme, even if dev theme exists'
|
84
|
+
desc 'compare', 'Show differences between local and remote copies (both public and dev, if present)'
|
70
85
|
def compare
|
71
86
|
within_theme do
|
72
|
-
local_theme, remote_theme = theme_selector.select_theme_pair(default_subdomain, current_dir
|
87
|
+
local_theme, remote_theme = theme_selector.select_theme_pair(default_subdomain, current_dir)
|
73
88
|
workflows.compare(local_theme, remote_theme)
|
89
|
+
|
90
|
+
# if we just compared against the dev theme, redo the mumbo-jumbo but with the public one
|
91
|
+
unless remote_theme.public?
|
92
|
+
local_theme, public_theme = theme_selector.select_theme_pair(default_subdomain, current_dir, true)
|
93
|
+
workflows.compare(local_theme, public_theme)
|
94
|
+
end
|
74
95
|
end
|
75
96
|
end
|
76
97
|
|
@@ -99,7 +120,8 @@ module BooticCli
|
|
99
120
|
local_theme, remote_theme = theme_selector.select_theme_pair(default_subdomain, current_dir)
|
100
121
|
|
101
122
|
if remote_theme.public?
|
102
|
-
prompt.say "You don't seem to have a development theme set up, so there's nothing to publish
|
123
|
+
prompt.say "You don't seem to have a development theme set up, so there's nothing to publish. :)", :red
|
124
|
+
prompt.say "To push your local changes directly to your public theme, either run the `push` or `sync` commands.", :red
|
103
125
|
else
|
104
126
|
|
105
127
|
# check if there are any differences between the dev and public themes
|
@@ -49,6 +49,14 @@ module BooticCli
|
|
49
49
|
theme
|
50
50
|
end
|
51
51
|
|
52
|
+
def create_dev_theme(dir)
|
53
|
+
theme = select_local_theme(dir)
|
54
|
+
shop = find_remote_shop(theme.subdomain)
|
55
|
+
raise "No shop with subdomain #{subdomain}" unless shop
|
56
|
+
raise 'Dev theme not available!' unless shop.themes.can?(:create_dev_theme)
|
57
|
+
new_theme = APITheme.new(shop.themes.create_dev_theme)
|
58
|
+
end
|
59
|
+
|
52
60
|
def select_local_theme(dir, subdomain = nil)
|
53
61
|
FSTheme.new(File.expand_path(dir), subdomain: subdomain)
|
54
62
|
end
|
@@ -162,6 +162,27 @@ module BooticCli
|
|
162
162
|
end
|
163
163
|
end
|
164
164
|
|
165
|
+
def publish(local_theme, remote_theme)
|
166
|
+
raise "This command is meant for dev themes only" unless remote_theme.dev?
|
167
|
+
|
168
|
+
changes = ThemeDiff.new(source: local_theme, target: remote_theme)
|
169
|
+
if changes.any?
|
170
|
+
prompt.say "There are differences between your local and the remote version of your shop's development theme."
|
171
|
+
if prompt.yes_or_no? "Push your local changes now?", true
|
172
|
+
push(local_theme, remote_theme, delete: true)
|
173
|
+
else
|
174
|
+
prompt.say "No problem. Please make sure both versions are synced before publishing.", :magenta
|
175
|
+
exit(1)
|
176
|
+
end
|
177
|
+
end
|
178
|
+
|
179
|
+
delete_dev = prompt.yes_or_no? "Delete the development copy of your theme after publishing?", true
|
180
|
+
prompt.notice "Alrighty! Publishing your development theme..."
|
181
|
+
updated_theme = remote_theme.publish(delete: delete_dev)
|
182
|
+
|
183
|
+
prompt.notice "Yay! Your development theme has been made public. Take a look at #{remote_theme.path.sub('/preview/dev', '')}"
|
184
|
+
end
|
185
|
+
|
165
186
|
def watch(dir, remote_theme, watcher: Listen)
|
166
187
|
listener = watcher.to(dir) do |modified, added, removed|
|
167
188
|
if modified.any?
|
@@ -200,25 +221,6 @@ module BooticCli
|
|
200
221
|
Kernel.sleep
|
201
222
|
end
|
202
223
|
|
203
|
-
def publish(local_theme, remote_theme)
|
204
|
-
raise "This command is meant for dev themes only" unless remote_theme.dev?
|
205
|
-
|
206
|
-
changes = ThemeDiff.new(source: local_theme, target: remote_theme)
|
207
|
-
if changes.any?
|
208
|
-
prompt.say "There are some differences between your local and the remote version of your development theme."
|
209
|
-
if prompt.yes_or_no? "Do you want to push your local changes now?", false
|
210
|
-
push(local_theme, remote_theme, delete: true)
|
211
|
-
else
|
212
|
-
prompt.say "Oh well. Please make sure both versions are synced before publishing.", :magenta
|
213
|
-
exit(1)
|
214
|
-
end
|
215
|
-
end
|
216
|
-
|
217
|
-
prompt.notice "Alrighty! Publishing your development theme..."
|
218
|
-
updated_theme = remote_theme.publish # syncs dev to public, without flipping them
|
219
|
-
prompt.notice "Yay! Your development theme has been made public. Take a look at #{remote_theme.path.sub('/preview/dev', '')}"
|
220
|
-
end
|
221
|
-
|
222
224
|
private
|
223
225
|
attr_reader :prompt
|
224
226
|
|
data/lib/bootic_cli/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bootic_cli
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ismael Celis
|
8
|
+
- Tomás Pollak
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
date: 2018-
|
12
|
+
date: 2018-08-02 00:00:00.000000000 Z
|
12
13
|
dependencies:
|
13
14
|
- !ruby/object:Gem::Dependency
|
14
15
|
name: thor
|
@@ -139,6 +140,7 @@ dependencies:
|
|
139
140
|
description: Bootic command-line client.
|
140
141
|
email:
|
141
142
|
- ismael@bootic.io
|
143
|
+
- tomas@bootic.io
|
142
144
|
executables:
|
143
145
|
- bootic
|
144
146
|
extensions: []
|