Commit bf92daa5 authored by Antoine Cellerier's avatar Antoine Cellerier

Add error handling to luac intf.

parent b8d7defe
--[==========================================================================[ --[==========================================================================[
luac.lua: lua compilation module for VLC (duplicates luac) luac.lua: lua compilation module for VLC (duplicates luac)
--[==========================================================================[ --[==========================================================================[
Copyright (C) 2010 the VideoLAN team Copyright (C) 2010 Antoine Cellerier
$Id$ $Id$
Authors: Antoine Cellerier <dionoea at videolan dot org> Authors: Antoine Cellerier <dionoea at videolan dot org>
...@@ -22,27 +22,46 @@ ...@@ -22,27 +22,46 @@
--]==========================================================================] --]==========================================================================]
usage = usage =
[[ To compile a lua script to luac run: [[
vlc -I lua --lua-intf --lua-config 'luac={input="file.lua",output="file.luac"}' To compile a lua script to bytecode (luac) run:
vlc -I lua --lua-intf --lua-config 'luac={input="file.lua",output="file.luac"}'
Output will be similar to that of the luac command line tool provided with lua with the following arguments:
luac -o file.luac file.lua
]] ]]
require "string" require "string"
require "io" require "io"
vlc.msg.info("About to compile lua file") function compile()
vlc.msg.info(" Input is '"..tostring(config.input).."'") vlc.msg.info("About to compile lua file")
vlc.msg.info(" Output is '"..tostring(config.output).."'") vlc.msg.info(" Input is '"..tostring(config.input).."'")
vlc.msg.info(" Output is '"..tostring(config.output).."'")
if not config.input or not config.output then
vlc.msg.err("Input and output config options must be set")
return false
end
local bytecode, msg = loadfile(config.input)
if not bytecode then
vlc.msg.err("Error while loading file '"..config.input.."': "..msg)
return false
end
local output, msg = io.open(config.output, "wb")
if not output then
vlc.msg.err("Error while opening file '"..config.output.."' for output: "..msg)
return false
else
output:write(string.dump(bytecode))
return true
end
end
if not config.input or not config.output then
vlc.msg.err("Input and output config options must be set") if not compile() then
for line in string.gmatch(usage,"([^\n]+)\n*") do for line in string.gmatch(usage,"([^\n]+)\n*") do
vlc.msg.err(line) vlc.msg.err(line)
end end
else
local bytecode = loadfile(config.input)
local output = io.open(config.output, "wb")
output:write(string.dump(bytecode))
end end
vlc.misc.quit() vlc.misc.quit()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment