voog-kit 0.3.1 → 0.3.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/bin/kit +10 -12
- data/lib/voog/dtk/filemanager.rb +32 -30
- data/lib/voog/dtk/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4d8f302218c12c39a550e03d9b6b4607ac45b7b1
|
4
|
+
data.tar.gz: fc4e9d0851bf63d22fd44b2a809df0ea4fad6f0f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ced86da8f72e62c1642798ba6ec39b86b01c805a1d943cf9ea6c04ac377f7d84e2c635a2c7b39eaf99e05b4d5d9fb3d548571413f21b7e69151d5f68b5e902c1
|
7
|
+
data.tar.gz: e3ae174c9d9e03bcd362751e5717462d693e495059af9fd349c4706fbf440340a73d28df076027b37417b885860d55de6dab01ad53c9ad055c591b9508ba97ed
|
data/bin/kit
CHANGED
@@ -25,7 +25,6 @@ hostname_args = [:h, :host, :hostname, { desc: 'Provide a hostname', arg_name: :
|
|
25
25
|
api_token_args = [:t, :token, :api_token, { desc: 'Provide an API token', arg_name: :API_TOKEN }]
|
26
26
|
site_args = [:s, :site, { arg_name: :SITE, default_value: nil, desc: 'Specify which site block to use when parsing the .voog file' }]
|
27
27
|
overwrite_args = [:overwrite, { negatable: true, default_value: false, desc: 'Enable overwriting asset files that cannot be normally updated.' }]
|
28
|
-
cleanup_args = [:cleanup, { negatable: false, default_value: false, desc: 'Delete remote layout files that are not in local manifest.' }]
|
29
28
|
|
30
29
|
flag *hostname_args
|
31
30
|
flag *api_token_args
|
@@ -51,7 +50,6 @@ command :init do |c|
|
|
51
50
|
c.switch *debug_args
|
52
51
|
c.switch *verbose_args
|
53
52
|
c.switch *silent_args
|
54
|
-
c.switch *overwrite_args
|
55
53
|
c.flag *hostname_args
|
56
54
|
c.flag *api_token_args
|
57
55
|
c.flag *site_args
|
@@ -88,7 +86,6 @@ command :check do |c|
|
|
88
86
|
c.switch *debug_args
|
89
87
|
c.switch *verbose_args
|
90
88
|
c.switch *silent_args
|
91
|
-
c.switch *overwrite_args
|
92
89
|
c.flag *hostname_args
|
93
90
|
c.flag *api_token_args
|
94
91
|
c.flag *site_args
|
@@ -98,16 +95,20 @@ command :check do |c|
|
|
98
95
|
end
|
99
96
|
|
100
97
|
desc 'Fetches the layout and layout asset files for the given site'
|
101
|
-
long_desc
|
98
|
+
long_desc "If no arguments are provided, the 'pull' command fetches all
|
102
99
|
layout files and layout assets and (re-)generates a manifest file.
|
103
|
-
If
|
104
|
-
manifest with
|
105
|
-
|
100
|
+
If file or folder names are provided, it fetches any files matching the
|
101
|
+
given names and updates the manifest with those files. The provided
|
102
|
+
names can be either folder names or full filenames. For layouts and
|
103
|
+
components, the .tpl extension is optional.\n
|
104
|
+
Examples:\n
|
105
|
+
kit pull images stylesheets javascripts\n
|
106
|
+
kit pull images/image.png images/image.jpg\n
|
107
|
+
kit pull layouts/front_page components/news.tpl"
|
106
108
|
command :pull do |c|
|
107
109
|
c.switch *debug_args
|
108
110
|
c.switch *verbose_args
|
109
111
|
c.switch *silent_args
|
110
|
-
c.switch *overwrite_args
|
111
112
|
c.flag *hostname_args
|
112
113
|
c.flag *api_token_args
|
113
114
|
c.flag *site_args
|
@@ -132,7 +133,6 @@ command :push do |c|
|
|
132
133
|
c.switch *verbose_args
|
133
134
|
c.switch *silent_args
|
134
135
|
c.switch *overwrite_args
|
135
|
-
c.switch *cleanup_args
|
136
136
|
c.flag *hostname_args
|
137
137
|
c.flag *api_token_args
|
138
138
|
c.flag *site_args
|
@@ -246,7 +246,6 @@ pre do |global, command, options, args|
|
|
246
246
|
silent = global.fetch(:silent, false) || options.fetch(:silent, false)
|
247
247
|
verbose = global.fetch(:verbose, false) || options.fetch(:verbose, false)
|
248
248
|
overwrite = global.fetch(:overwrite, false) || options.fetch(:overwrite, false)
|
249
|
-
cleanup = global.fetch(:cleanup, false) || options.fetch(:cleanup, false)
|
250
249
|
|
251
250
|
@notifier = Voog::Dtk::Notifier.new($stderr, silent)
|
252
251
|
|
@@ -283,8 +282,7 @@ pre do |global, command, options, args|
|
|
283
282
|
@filemanager = Voog::Dtk::FileManager.new(client, {
|
284
283
|
silent: silent,
|
285
284
|
verbose: verbose,
|
286
|
-
overwrite: overwrite
|
287
|
-
cleanup: cleanup
|
285
|
+
overwrite: overwrite
|
288
286
|
})
|
289
287
|
end
|
290
288
|
|
data/lib/voog/dtk/filemanager.rb
CHANGED
@@ -235,7 +235,7 @@ module Voog::Dtk
|
|
235
235
|
@notifier.info 'Reading local files...'
|
236
236
|
layouts_dir = Dir.new('layouts')
|
237
237
|
layouts = layouts_dir.entries.select do |file|
|
238
|
-
(
|
238
|
+
(!File.directory?(File.join(layouts_dir, file)) && valid_for_folder?(file, 'layouts'))
|
239
239
|
end
|
240
240
|
layouts = layouts.map do |l|
|
241
241
|
attrs = {
|
@@ -253,7 +253,7 @@ module Voog::Dtk
|
|
253
253
|
end
|
254
254
|
components_dir = Dir.new('components')
|
255
255
|
components = components_dir.entries.select do |file|
|
256
|
-
(
|
256
|
+
(!File.directory?(File.join(components_dir, file)) && valid_for_folder?(file, 'components'))
|
257
257
|
end
|
258
258
|
components = components.map do |c|
|
259
259
|
name = c.split('.').first.gsub('_', ' ')
|
@@ -276,7 +276,7 @@ module Voog::Dtk
|
|
276
276
|
next unless Dir.exist? dir
|
277
277
|
current_dir = Dir.new(dir)
|
278
278
|
current_dir.entries.each do |file|
|
279
|
-
next
|
279
|
+
next unless !File.directory?(File.join(current_dir, file)) && valid_for_folder?(file, dir)
|
280
280
|
attrs = {
|
281
281
|
'content_type' => begin
|
282
282
|
MIME::Types.type_for(file).first.content_type
|
@@ -893,55 +893,56 @@ module Voog::Dtk
|
|
893
893
|
|
894
894
|
def find_layouts(names)
|
895
895
|
layouts = get_layouts
|
896
|
-
@manifest = read_manifest if File.exist? 'manifest.json'
|
897
896
|
results = []
|
898
897
|
|
899
898
|
names.each do |name|
|
900
|
-
|
901
|
-
|
902
|
-
|
903
|
-
|
904
|
-
|
905
|
-
else # not found in manifest
|
906
|
-
layout = layouts.find { |l| l.title == name }
|
907
|
-
end
|
908
|
-
id = layout.id if layout
|
899
|
+
case name
|
900
|
+
when /\Alayouts\/?\Z/
|
901
|
+
results << layouts.select { |l| !l.component }.map(&:id)
|
902
|
+
when /\Acomponents\/?\Z/
|
903
|
+
results << layouts.select { |l| l.component }.map(&:id)
|
909
904
|
else
|
910
|
-
|
911
|
-
|
905
|
+
type, name = name.gsub('.tpl', '').split('/')
|
906
|
+
results << layouts.select do |l|
|
907
|
+
(type == 'layouts' ? !l.component : l.component) && l.title.gsub(/[^\w\.]/, '_').downcase == name
|
908
|
+
end.map(&:id)
|
912
909
|
end
|
913
|
-
results << id if id
|
914
910
|
end
|
915
|
-
|
916
|
-
results
|
911
|
+
results.flatten
|
917
912
|
end
|
918
913
|
|
919
914
|
def find_assets(names)
|
920
915
|
assets = get_layout_assets
|
921
916
|
results = []
|
922
917
|
names.each do |name|
|
923
|
-
|
924
|
-
|
925
|
-
|
918
|
+
case name
|
919
|
+
when /\Aassets\/?\Z/
|
920
|
+
results << assets.select { |a| a.asset_type == 'asset' }.map(&:id)
|
921
|
+
when /\Aimages\/?\Z/
|
922
|
+
results << assets.select { |a| a.asset_type == 'image' }.map(&:id)
|
923
|
+
when /\Ajavascripts\/?\Z/
|
924
|
+
results << assets.select { |a| a.asset_type == 'javascript' }.map(&:id)
|
925
|
+
when /\Astylesheets\/?\Z/
|
926
|
+
results << assets.select { |a| a.asset_type == 'stylesheet' }.map(&:id)
|
927
|
+
else
|
928
|
+
results << assets.select { |a| a.filename == name.split('/').last }.map(&:id)
|
929
|
+
end
|
926
930
|
end
|
927
|
-
results
|
931
|
+
results.flatten
|
928
932
|
end
|
929
933
|
|
930
934
|
def pull_files(names)
|
931
|
-
# TODO: pull whole folders, e.g "pull images"
|
932
935
|
layout_ids = find_layouts(names)
|
933
936
|
asset_ids = find_assets(names)
|
934
937
|
|
935
938
|
found = layout_ids.length + asset_ids.length
|
936
|
-
|
937
|
-
|
939
|
+
|
940
|
+
unless found
|
941
|
+
@notifier.error "Unable to find any files matching the given pattern#{'s' if names.length > 1}!"
|
938
942
|
@notifier.newline
|
939
|
-
ret = true
|
940
|
-
elsif found == names.length
|
941
|
-
ret = true
|
942
|
-
elsif found == 0
|
943
|
-
@notifier.error 'Unable to find any specified files!'
|
944
943
|
ret = false
|
944
|
+
else
|
945
|
+
ret = true
|
945
946
|
end
|
946
947
|
|
947
948
|
create_layouts(layout_ids) unless layout_ids.empty?
|
@@ -949,6 +950,7 @@ module Voog::Dtk
|
|
949
950
|
|
950
951
|
ret
|
951
952
|
end
|
953
|
+
|
952
954
|
def display_sites(sites)
|
953
955
|
sites.each_with_index do |site, index|
|
954
956
|
@notifier.info "#{site.fetch(:name)} #{'(default)' if index == 0}"
|
data/lib/voog/dtk/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: voog-kit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mikk Pristavka
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-01-
|
12
|
+
date: 2015-01-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|