aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHisham Muhammad <hisham@gobolinux.org>2018-07-17 16:00:09 -0300
committerHisham Muhammad <hisham@gobolinux.org>2018-07-18 11:24:07 -0300
commitf20f4cca65d6433cb354b584ee25339f152e72ec (patch)
treeb7f86d4e93b164383041c4d0d40b9b5c32995126
parent7108a8b6a1c2f2b6d629135fc797a5a0aa25f934 (diff)
downloadluarocks-f20f4cca65d6433cb354b584ee25339f152e72ec.tar.gz
luarocks-f20f4cca65d6433cb354b584ee25339f152e72ec.tar.bz2
luarocks-f20f4cca65d6433cb354b584ee25339f152e72ec.zip
fs: add filter_file
-rw-r--r--src/luarocks/fs/lua.lua30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/luarocks/fs/lua.lua b/src/luarocks/fs/lua.lua
index 9da3875b..58dcf5c1 100644
--- a/src/luarocks/fs/lua.lua
+++ b/src/luarocks/fs/lua.lua
@@ -211,6 +211,36 @@ function fs_lua.modules(at)
211 return modules 211 return modules
212end 212end
213 213
214function fs_lua.filter_file(fn, input_filename, output_filename)
215 local fd, err = io.open(input_filename, "rb")
216 if not fd then
217 return nil, err
218 end
219
220 local input, err = fd:read("*a")
221 fd:close()
222 if not input then
223 return nil, err
224 end
225
226 local output, err = fn(input)
227 if not output then
228 return nil, err
229 end
230
231 fd, err = io.open(output_filename, "wb")
232 if not fd then
233 return nil, err
234 end
235
236 local ok, err = fd:write(output)
237 fd:close()
238 if not ok then
239 return nil, err
240 end
241
242 return true
243end
214 244
215--------------------------------------------------------------------- 245---------------------------------------------------------------------
216-- LuaFileSystem functions 246-- LuaFileSystem functions