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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
# File 'lib/coffeescript.rb', line 77
def run_watch
require 'fssm'
files_to_lookat = File.join @cap.settings.working_dir, @cap.settings.conf['coffeescript_files_dir']
js_generated_dir = File.join @cap.settings.working_dir, @cap.settings.conf['coffeescript_output_dir']
coffee = @cap.coffee
coffee_thread = Thread.new {
FSSM.monitor(files_to_lookat, :directories => true) do
update do |b, r|
file = File.join b, r
coffee.run_once file if File.extname(r) == '.coffee'
end
create do |b, r|
file = File.join b, r
coffee.run_once file if File.extname(r) == '.coffee'
end
delete do |b, r|
file_name = File.expand_path File.join(b, r)
folder_name = File.dirname file_name
js_files = [
File.join(js_generated_dir, r.gsub('.coffee', '.js')),
File.join(js_generated_dir, r.gsub('.coffee', '.min.js')),
]
if Dir["#{folder_name}/*"].empty? and folder_name != js_generated_dir
to_delete = File.expand_path(File.dirname(js_files[0]))
FileUtils.rm_r to_delete
else
js_files.each do |file|
File.delete(file) if File.exist?(file)
end
end
end
end
}
return coffee_thread
end
|