Lukáš Voborský 949875d590
File LFS Lua module initial commit (#3332)
* File LFS module initial commit

* LFS file module update #1

* LFS file module update #2 - doc update and file.stat() returning read only attribute

* Implementing file.list()

* Fine-tuning `file_lfs` module

* Adding `file_lfs` to mkdocs.yml

* Implementing file.list() update #1

* Fine-tuning

* Fine-tuning #2
2021-05-06 06:52:39 +02:00

67 lines
1.7 KiB
Lua

#!/usr/bin/lua
--------------------------------------------------------------------------------
-- Script to be used on PC to build resource.lua file
-- Parameters: [-o outputfile] file1 [file2] ...
-- Example: ./make_resource resource/*
-- creates resource.lua file with all files in resource directory
--------------------------------------------------------------------------------
local OUT = "resource.lua"
local function readfile(file)
local f = io.open(file, "rb")
if f then
local lines = f:read("*all")
f:close()
return lines
end
end
-- tests the functions above
print(string.format("make_resource script - %d parameter(s)", #arg))
if #arg==0 or arg[1]=="--help" then
print("parameters: [-o outputfile] file1 [file2] ...")
return
end
local larg = {}
local outpar = false
for i, a in pairs(arg) do
if i>0 then
if outpar then
OUT = a
outpar = false
else
if a == "-o" then
outpar = true
else
table.insert(larg, a)
end
end
end
end
print(string.format("output set to: %s", OUT))
local res = io.open(OUT, "w")
res:write("-- luacheck: max line length 10000\nlocal arg = ...\n")
res:close(file)
local filelist = ""
for _, a in pairs(larg) do
local inp = string.match(a, ".*[/](.*)")
if not inp then inp = a end
local content = readfile(a)
print(string.format("# processing %s", inp))
if content then
res = io.open(OUT, "a")
filelist = filelist .. ('"%s",'):format(inp)
res:write(('if arg == "%s" then return %q end\n\n'):format(inp, content))
res:close(file)
end
end
res = io.open(OUT, "a")
res:write(('if arg == nil then return {%s} end\n'):format(filelist))
res:close(file)