cl3/assets/lua/global/cmd.lua

41 lines
956 B
Lua
Raw Normal View History

2023-05-08 22:22:14 +00:00
local function join(delimiter, list)
local result = ""
local len = #list
for i, v in ipairs(list) do
result = result .. tostring(v)
if i < len then
result = result .. tostring(delimiter)
end
end
return result
end
local function quoted(str)
local escaped_str = string.gsub(str, '[\\"]', '\\%1')
return '"' .. escaped_str .. '"'
end
local lfs = require("lfs")
return {
cmd = function(cmd)
if type(cmd) == "string" then
cmd = {cmd}
end
local cmd_line = table.concat(cmd, "\n")
for i, v in ipairs(cmd) do
cmd[i] = "\27[32m-> \27[0m" .. string.gsub(cmd[i], "\n", "\n\27[32m-> \27[0m")
end
local print_line = table.concat(cmd, "\n")
print(print_line)
return assert(os.execute("bash -e -c " .. quoted(cmd_line)))
end,
cd = function(path)
print("\27[32m-> \27[0mcd " .. path)
assert(lfs.chdir(path))
end
}