From f20f4cca65d6433cb354b584ee25339f152e72ec Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Tue, 17 Jul 2018 16:00:09 -0300 Subject: fs: add filter_file --- src/luarocks/fs/lua.lua | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) 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) return modules end +function fs_lua.filter_file(fn, input_filename, output_filename) + local fd, err = io.open(input_filename, "rb") + if not fd then + return nil, err + end + + local input, err = fd:read("*a") + fd:close() + if not input then + return nil, err + end + + local output, err = fn(input) + if not output then + return nil, err + end + + fd, err = io.open(output_filename, "wb") + if not fd then + return nil, err + end + + local ok, err = fd:write(output) + fd:close() + if not ok then + return nil, err + end + + return true +end --------------------------------------------------------------------- -- LuaFileSystem functions -- cgit v1.2.3-55-g6feb