48 lines
1.1 KiB
Lua
48 lines
1.1 KiB
Lua
local data_util = {}
|
|
data_util.str_gsub = string.gsub
|
|
|
|
function data_util.replace(str, what, with)
|
|
what = data_util.str_gsub(what, "[%(%)%.%+%-%*%?%[%]%^%$%%]", "%%%1") -- escape pattern
|
|
with = data_util.str_gsub(with, "[%%]", "%%%%") -- escape replacement
|
|
return data_util.str_gsub(str, what, with)
|
|
end
|
|
|
|
function data_util.replace_filenames_recursive(subject, what, with)
|
|
for _, sub in pairs(subject) do
|
|
if (type(sub) == "table") then
|
|
data_util.replace_filenames_recursive(sub, what, with)
|
|
elseif _ == "filename" then
|
|
subject.filename = data_util.replace(subject.filename, what, with)
|
|
end
|
|
end
|
|
end
|
|
|
|
function data_util.remove_from_table(list, item)
|
|
local index = 0
|
|
for _,_item in ipairs(list) do
|
|
if item == _item then
|
|
index = _
|
|
break
|
|
end
|
|
end
|
|
if index > 0 then
|
|
table.remove(list, index)
|
|
end
|
|
end
|
|
|
|
function data_util.concatenate_lists(a, b)
|
|
for _, item in pairs(b) do
|
|
table.insert(a, item)
|
|
end
|
|
end
|
|
|
|
function data_util.list_to_set(list)
|
|
local set = {}
|
|
for _, item in pairs(list) do
|
|
set[item] = true
|
|
end
|
|
return set
|
|
end
|
|
|
|
return data_util
|