7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
# File 'lib/scms/scms-watcher.rb', line 7
def ScmsWatcher.watch(settings, options, configdir)
watcher = Thread.new {
configfile = File.join(configdir, "_config.yml")
FileWatcher.new([configfile]).watch do |filename|
puts ""
puts "***********************************"
puts " Config Modification (_config.yml) "
puts "***********************************"
puts ""
settings = Scms.getSettings(configdir)
Scms.bundle(settings, Folders[:website])
Scms.build(Folders[:website], settings, options)
end
}
psst = []
psst.push("_pages") if File.directory? "_pages" psst.push("_views") if File.directory? "_views" psst.push("_layouts") if File.directory? "_layouts" psst.push("_templates") if File.directory? "_templates" psst.push("_resources") if File.directory? "_resources" psst.push("_source") if File.directory? "_source"
puts "Listening to #{psst}"
listener = Listen.to(psst, force_polling: true) do |modified, added, removed|
sassfile = false
bundlefile = false
buildfile = false
if removed.length > 0
removed.each{|filename|
removedfile = Pathname.new(filename).relative_path_from(Pathname.new(Folders[:website])).to_s
puts ""
puts "***********************************************"
puts " Deleted: #{removedfile}"
puts "***********************************************"
puts ""
if removedfile.start_with?('_pages/')
buildfile = true
end
}
end
if added.length > 0
added.each{|filename|
addedfile = Pathname.new(filename).relative_path_from(Pathname.new(Folders[:website])).to_s
puts ""
puts "***********************************************"
puts " Added: #{addedfile}"
puts "***********************************************"
puts ""
if addedfile.start_with?('_pages/')
buildfile = true
end
}
end
if modified.length > 0
modified.each{|filename|
modifiedfile = Pathname.new(filename).relative_path_from(Pathname.new(Folders[:website])).to_s
ext = File.extname(modifiedfile)
puts ""
puts "***********************************************"
puts " Modified: #{modifiedfile}"
puts "***********************************************"
puts ""
buildfile = true
if modifiedfile.start_with?('_source/')
bundlefile = true
buildfile = false
end
if ext == ".scss"
sassfile = true
bundlefile = false
buildfile = false
break
end
}
end
Scms.sassall(Folders[:website]) if sassfile
Scms.bundle(settings, Folders[:website]) if bundlefile
Scms.build(Folders[:website], settings, options) if buildfile
end
listener.start listener.ignore! /\.png/
listener.ignore! /\.gif/
listener.ignore! /\.jpg/
end
|