28 lines
791 B
Lua
28 lines
791 B
Lua
-- /bin/build - "Compiles" a .lua file into an executable.
|
|
local source_filename = arg[1]
|
|
|
|
if not source_filename then
|
|
return "build: missing file operand"
|
|
end
|
|
|
|
-- Check for .lua extension.
|
|
if not source_filename:match("%.lua$") then
|
|
return "build: input file must be a .lua file"
|
|
end
|
|
|
|
local current_dir = bettola.get_current_dir(context)
|
|
local source_node = current_dir.children[source_filename]
|
|
|
|
if not source_node then
|
|
return "build: cannot open '" .. source_filename .."': No such file"
|
|
end
|
|
|
|
if source_node.type ~= 0 then
|
|
return "build: '" .. source_filename .. "' is not a regular file"
|
|
end
|
|
|
|
local executable_filename = source_filename:gsub("%.lua$", "")
|
|
local source_content = source_node.content
|
|
|
|
return bettola.create_executable(context, executable_filename, source_content)
|