bettola/assets/scripts/bin/cat.lua
Ritchie Cunningham e06d6eec37 [Refactor] Implement scriptable Lua API
Large architecture refactor of the scripting system.

Previous implementation required Lua scripts to return "action
tables" which were interpreted by a large and not very flexible at all
if-else ladder in C++. While fine for the initial implementation, it's
not scalable, and it makes it impossible for players to write their own
meaningful tools.
2025-09-27 21:18:05 +01:00

20 lines
499 B
Lua

-- /bin/cat - Concatenate files and print on stdout.
local filename = arg[1]
if not filename then
return "" -- No arguments, return nothing.
end
local current_dir = bettola.get_current_dir(context)
local target_node = current_dir.children[filename]
if not target_node then
return "cat: " .. filename .. ": No such file or directory."
end
if target_node.type == 1 then
return "cat: " .. filename .. ": Is a directory"
end
-- It's a file, return it's contents. :)
return target_node.content