scms 2.0.9 → 2.1.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/bin/scms +5 -5
- data/lib/scms.rb +61 -36
- data/lib/scms/s3deploy.rb +4 -4
- data/lib/scms/scms-utils.rb +12 -1
- data/lib/scms/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: b943e5110913001c531f5db7d229d77e32ea5f4c
|
4
|
+
data.tar.gz: a2eceff57906100fde18df5daa2e4d4e84100dd1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0ab284712cbccc96170b35a232529fb8f60f7237a3837822c1e69354112a2c06ced296c647e53ba0b4710e3d3b217c30101b8690ae43b6ed5417ce9cfaf66f57
|
7
|
+
data.tar.gz: 5249468af79e85557d93fdf821bce440a9e75369ace10b32d4212395225540783a8ef59336e1a697dc97064a1b6a4a7dc3536efcc0f99e8a8ba7d39afae60c2c
|
data/bin/scms
CHANGED
@@ -90,11 +90,11 @@ else
|
|
90
90
|
FileUtils.rm(monkeyhook) if File.exist?(monkeyhook)
|
91
91
|
end
|
92
92
|
|
93
|
-
#
|
94
|
-
#
|
95
|
-
#
|
96
|
-
#
|
97
|
-
#
|
93
|
+
#ScmsUtils.log "System root folder = #{Folders[:root]}"
|
94
|
+
#ScmsUtils.log "Website folder = #{Folders[:website]}"
|
95
|
+
#ScmsUtils.log "Pub dir = #{Folders[:pub]}"
|
96
|
+
#ScmsUtils.log "Config dir = #{Folders[:config]}"
|
97
|
+
#ScmsUtils.log "Mode = #{options[:mode]}"
|
98
98
|
|
99
99
|
raise "No website in folder #{Folders[:website]}" if !File::directory?(Folders[:website])
|
100
100
|
Scms.upgrade(Folders[:website])
|
data/lib/scms.rb
CHANGED
@@ -18,7 +18,7 @@ module Scms
|
|
18
18
|
@mode = mode
|
19
19
|
#ScmsUtils.log("Mode: #{mode}")
|
20
20
|
|
21
|
-
ScmsUtils.
|
21
|
+
ScmsUtils.boldlog("Compiling #{@website}")
|
22
22
|
Scms.sassall(File.join(@website))
|
23
23
|
|
24
24
|
yamlpath=File.join(config, "_config.yml")
|
@@ -33,7 +33,7 @@ module Scms
|
|
33
33
|
require_relative bootstrap
|
34
34
|
rescue Exception=>e
|
35
35
|
ScmsUtils.errLog(e.message)
|
36
|
-
ScmsUtils.log(e.backtrace.inspect
|
36
|
+
ScmsUtils.log(e.backtrace.inspect)
|
37
37
|
end
|
38
38
|
else
|
39
39
|
ScmsUtils.errLog("Bootstrap does not exist #{@settings["bootstrap"]}")
|
@@ -48,7 +48,7 @@ module Scms
|
|
48
48
|
ScmsUtils.errLog("Config is empty")
|
49
49
|
end
|
50
50
|
|
51
|
-
ScmsUtils.
|
51
|
+
ScmsUtils.boldlog("Built website:")
|
52
52
|
ScmsUtils.log(ScmsUtils.uriEncode("file:///#{@website}"))
|
53
53
|
end
|
54
54
|
|
@@ -93,8 +93,12 @@ module Scms
|
|
93
93
|
resourcepath = File.join(@website, pageconfig["resource"])
|
94
94
|
if File.exists?(resourcepath)
|
95
95
|
#ScmsUtils.log( "_Resource found: #{pageconfig["resource"]}_" )
|
96
|
-
|
97
|
-
|
96
|
+
begin
|
97
|
+
resource = YAML.load_file(resourcepath)
|
98
|
+
rescue Exception=>e
|
99
|
+
ScmsUtils.errLog(e.message)
|
100
|
+
ScmsUtils.log(e.backtrace.inspect)
|
101
|
+
end
|
98
102
|
else
|
99
103
|
ScmsUtils.errLog("Resource not found: #{pageconfig["resource"]}")
|
100
104
|
ScmsUtils.writelog("::Resource not found #{pageconfig["resource"]}", @website)
|
@@ -127,8 +131,12 @@ module Scms
|
|
127
131
|
views[view[0]] = ""
|
128
132
|
viewpath = File.join(@website, view[1])
|
129
133
|
if File.exists?(viewpath)
|
130
|
-
|
131
|
-
|
134
|
+
begin
|
135
|
+
htmlsnipet = File.read(viewpath)
|
136
|
+
rescue Exception=>e
|
137
|
+
ScmsUtils.errLog(e.message)
|
138
|
+
ScmsUtils.log(e.backtrace.inspect)
|
139
|
+
end
|
132
140
|
if !htmlsnipet.empty?
|
133
141
|
viewmodel = Hash.new
|
134
142
|
viewmodel = {
|
@@ -142,8 +150,13 @@ module Scms
|
|
142
150
|
|
143
151
|
if hasHandler
|
144
152
|
ScmsUtils.log("Rendering with handler")
|
145
|
-
|
146
|
-
|
153
|
+
begin
|
154
|
+
viewSnippet = Handler.render(viewpath)
|
155
|
+
rescue Exception=>e
|
156
|
+
ScmsUtils.errLog(e.message)
|
157
|
+
ScmsUtils.log(e.backtrace.inspect)
|
158
|
+
end
|
159
|
+
|
147
160
|
else
|
148
161
|
#todo: why not use htmlsnipet
|
149
162
|
snnipetCode = File.read(viewpath)
|
@@ -154,8 +167,8 @@ module Scms
|
|
154
167
|
viewSnippet = doc.to_html
|
155
168
|
rescue Exception => e
|
156
169
|
viewSnippet = snnipetCode
|
157
|
-
|
158
|
-
|
170
|
+
ScmsUtils.errLog(e.message)
|
171
|
+
ScmsUtils.log(e.backtrace.inspect)
|
159
172
|
#todo: use scmslog
|
160
173
|
end
|
161
174
|
else
|
@@ -222,8 +235,12 @@ module Scms
|
|
222
235
|
websiteroot = @settings["url"] unless @settings["rooturl"] == nil
|
223
236
|
|
224
237
|
html = html.gsub('~/', websiteroot)
|
225
|
-
|
226
|
-
|
238
|
+
begin
|
239
|
+
File.open(out, 'w') {|f| f.write(html) }
|
240
|
+
rescue Exception=>e
|
241
|
+
ScmsUtils.errLog(e.message)
|
242
|
+
ScmsUtils.log(e.backtrace.inspect)
|
243
|
+
end
|
227
244
|
else
|
228
245
|
ScmsUtils.errLog("Template doesn't exist: #{skin}")
|
229
246
|
ScmsUtils.writelog("::Template doesn't exist #{skin}", @website)
|
@@ -243,9 +260,8 @@ module Scms
|
|
243
260
|
begin
|
244
261
|
result = ERB.new(template).result(page.instance_eval { binding })
|
245
262
|
rescue Exception => e
|
246
|
-
|
247
|
-
|
248
|
-
#todo: log error to build.log
|
263
|
+
ScmsUtils.errLog("Critical Error: Could not parse template")
|
264
|
+
ScmsUtils.errLog(e.message)
|
249
265
|
end
|
250
266
|
|
251
267
|
return result
|
@@ -254,41 +270,52 @@ module Scms
|
|
254
270
|
def Scms.bundle(bundleConfig)
|
255
271
|
bundles = Hash.new
|
256
272
|
if bundleConfig != nil
|
257
|
-
|
273
|
+
|
258
274
|
bundleConfig.each do |bundle|
|
259
275
|
#ScmsUtils.log( "bundle (#{bundle.class}) = #{bundle}" )
|
260
276
|
bundle.each do |option|
|
261
277
|
name = option[0]
|
262
278
|
bundleName = File.join(option[1]["generate"])
|
263
279
|
bundles[name] = bundleName
|
264
|
-
ScmsUtils.
|
280
|
+
ScmsUtils.boldlog("Bundeling:")
|
265
281
|
|
266
282
|
content = ""
|
267
283
|
assetList = ""
|
268
284
|
files = option[1]["files"]
|
269
285
|
if files != nil
|
270
286
|
files.each do |asset|
|
271
|
-
assetList += "
|
287
|
+
assetList += " - #{asset}\n"
|
272
288
|
assetdir = File.join(@website, asset)
|
273
289
|
if File::exists?(assetdir)
|
274
290
|
#try catch for permisions
|
275
|
-
|
276
|
-
|
291
|
+
begin
|
292
|
+
content = content + "\n" + File.read(assetdir)
|
293
|
+
rescue Exception=>e
|
294
|
+
ScmsUtils.errLog(e.message)
|
295
|
+
ScmsUtils.log(e.backtrace.inspect)
|
296
|
+
end
|
277
297
|
else
|
278
|
-
ScmsUtils.errLog(
|
298
|
+
ScmsUtils.errLog("Asset file doesn't exists: #{asset}")
|
279
299
|
ScmsUtils.writelog("::Asset file doesn't exists: #{asset}", @website)
|
280
300
|
ScmsUtils.writelog("type NUL > #{assetdir}", @website)
|
281
301
|
end
|
282
302
|
end
|
283
303
|
ScmsUtils.log("#{assetList}")
|
284
304
|
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
305
|
+
bundleFullPath = File.join(@website, bundleName)
|
306
|
+
bundleDir = File.dirname(File.join(@website, bundleName))
|
307
|
+
begin
|
308
|
+
Dir.mkdir(bundleDir, 755) unless File::directory?(bundleDir)
|
309
|
+
File.open(bundleFullPath, 'w') {|f| f.write(content) }
|
310
|
+
ScmsUtils.successLog("Created: #{bundleName}")
|
311
|
+
rescue Exception=>e
|
312
|
+
ScmsUtils.errLog("Error creating bundle: #{bundleName}")
|
313
|
+
ScmsUtils.errLog(e.message)
|
314
|
+
ScmsUtils.log(e.backtrace.inspect)
|
315
|
+
end
|
289
316
|
if File.extname(bundleName) == ".js"
|
290
317
|
puts "Minifing: #{bundleName}"
|
291
|
-
Scms.packr(
|
318
|
+
Scms.packr(bundleFullPath) unless /(-min)|(\.min)/.match(bundleName)
|
292
319
|
end
|
293
320
|
else
|
294
321
|
ScmsUtils.errLog("No files in bundle");
|
@@ -320,10 +347,10 @@ module Scms
|
|
320
347
|
output = sass_engine.to_css
|
321
348
|
css_file = "#{File.dirname(asset)}/#{File.basename(asset,'.*')}.css"
|
322
349
|
File.open(css_file, 'w') { |file| file.write(output) }
|
323
|
-
ScmsUtils.log( "
|
350
|
+
ScmsUtils.log( "CSS minified (sassed): #{css_file}" )
|
324
351
|
rescue Exception => e
|
325
|
-
ScmsUtils.errLog(
|
326
|
-
ScmsUtils.errLog(
|
352
|
+
ScmsUtils.errLog("Error processing: #{asset}")
|
353
|
+
ScmsUtils.errLog(e.message)
|
327
354
|
end
|
328
355
|
else
|
329
356
|
ScmsUtils.errLog("Sass file doesn't exists: #{asset}")
|
@@ -338,15 +365,13 @@ module Scms
|
|
338
365
|
code = File.read(asset)
|
339
366
|
compressed = Packr.pack(code)
|
340
367
|
File.open(asset, 'w') { |f| f.write(compressed) }
|
341
|
-
ScmsUtils.log(
|
368
|
+
ScmsUtils.log("Minified #{File.basename(asset)}")
|
342
369
|
rescue Exception => e
|
343
|
-
ScmsUtils.errLog(
|
344
|
-
ScmsUtils.errLog(
|
370
|
+
ScmsUtils.errLog("Error processing: #{asset}")
|
371
|
+
ScmsUtils.errLog(e.message)
|
345
372
|
end
|
346
373
|
else
|
347
|
-
ScmsUtils.errLog("
|
348
|
-
ScmsUtils.writelog("::Asset file doesn't exist #{asset}", @website)
|
349
|
-
ScmsUtils.writelog("type NUL > #{asset}", @website)
|
374
|
+
ScmsUtils.errLog("Can't minify asset because file doesn't exist: #{asset}")
|
350
375
|
end
|
351
376
|
end
|
352
377
|
|
data/lib/scms/s3deploy.rb
CHANGED
@@ -14,7 +14,7 @@ module S3Deploy
|
|
14
14
|
s3yamlpath=File.join(config, "_s3config.yml")
|
15
15
|
settings = YAML.load_file(s3yamlpath)
|
16
16
|
throw "No bucket defined in _s3config.yml settings file" if settings['bucket'] == nil
|
17
|
-
ScmsUtils.
|
17
|
+
ScmsUtils.boldlog( "Syncing with Amazon S3: #{settings['bucket']}" )
|
18
18
|
|
19
19
|
exclude = "(\\.svn$)|(^_)"
|
20
20
|
if settings['ignore'] != nil
|
@@ -27,7 +27,7 @@ module S3Deploy
|
|
27
27
|
#First deploy private directories
|
28
28
|
Dir.glob("#{pub}/_*/").each do |f|
|
29
29
|
privatedir = File.basename(f)
|
30
|
-
ScmsUtils.log( "Backing up #{privatedir} (private)" )
|
30
|
+
ScmsUtils.log( "Backing up: #{privatedir} (private)" )
|
31
31
|
privateparams = "#{params} \"#{pub}/#{privatedir}/\" #{settings['bucket']}:#{privatedir}/"
|
32
32
|
ScmsUtils.run(cmd, privateparams)
|
33
33
|
end
|
@@ -35,13 +35,13 @@ module S3Deploy
|
|
35
35
|
#Them deploy publid dir with caching
|
36
36
|
if settings['cache'] != nil
|
37
37
|
settings['cache'].each do |folder|
|
38
|
-
ScmsUtils.log(
|
38
|
+
ScmsUtils.log("Publishing: #{folder}(public: caching: 1 year)")
|
39
39
|
cacheparams = "#{params} --public-read --cache-control='max-age=31449600' \"#{pub}/#{folder}/\" #{settings['bucket']}:#{folder}/"
|
40
40
|
ScmsUtils.run(cmd, cacheparams)
|
41
41
|
end
|
42
42
|
end
|
43
43
|
|
44
|
-
ScmsUtils.log(
|
44
|
+
ScmsUtils.log("Publishing root (public)")
|
45
45
|
removeold = ""
|
46
46
|
removeold = "--delete" if settings['clean'].to_s == "true"
|
47
47
|
roorparams = "#{removeold} #{params} --public-read \"#{pub}/\" #{settings['bucket']}:/"
|
data/lib/scms/scms-utils.rb
CHANGED
@@ -7,6 +7,7 @@ module ScmsUtils
|
|
7
7
|
ScmsUtils.log("Loading Config: #{ScmsUtils.uriEncode("file:///#{yamlpath}")}")
|
8
8
|
config = nil
|
9
9
|
|
10
|
+
##http://snk.tuxfamily.org/log/yaml-json-validation-kwalify-ruby19.html
|
10
11
|
#'kwalify'
|
11
12
|
#schema = Kwalify::Yaml.load_file('some_complex_schema.yaml')
|
12
13
|
#validator = Kwalify::Validator.new(schema)
|
@@ -63,6 +64,16 @@ module ScmsUtils
|
|
63
64
|
end
|
64
65
|
end
|
65
66
|
|
67
|
+
def ScmsUtils.boldlog(msg)
|
68
|
+
if !msg.nil?
|
69
|
+
if ENV["SCMS_HTML_OUT"] == "true"
|
70
|
+
puts "<strong>#{ScmsUtils.txt_2_html(msg)}</strong>"
|
71
|
+
else
|
72
|
+
puts msg
|
73
|
+
end
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
66
77
|
def ScmsUtils.log(msg)
|
67
78
|
if !msg.nil?
|
68
79
|
if ENV["SCMS_HTML_OUT"] == "true"
|
@@ -75,7 +86,7 @@ module ScmsUtils
|
|
75
86
|
|
76
87
|
def ScmsUtils.writelog(log, pub)
|
77
88
|
if !pub.nil? && !log.nil?
|
78
|
-
open(File.join(pub, "
|
89
|
+
open(File.join(pub, "_build.log"), 'a') { |f|
|
79
90
|
f.puts log
|
80
91
|
}
|
81
92
|
end
|
data/lib/scms/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Courtenay Probert
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-08-
|
11
|
+
date: 2013-08-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: cprobert-s3sync
|