[vlc-devel] commit: Add error handling to luac intf. (Antoine Cellerier )
git version control
git at videolan.org
Sun Feb 28 00:40:14 CET 2010
vlc | branch: master | Antoine Cellerier <dionoea at videolan.org> | Sun Feb 28 00:39:53 2010 +0100| [bf92daa5d47cfa6379cfe5e1ce80533e92b4f6cc] | committer: Antoine Cellerier
Add error handling to luac intf.
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=bf92daa5d47cfa6379cfe5e1ce80533e92b4f6cc
---
share/lua/intf/luac.lua | 45 ++++++++++++++++++++++++++++++++-------------
1 files changed, 32 insertions(+), 13 deletions(-)
diff --git a/share/lua/intf/luac.lua b/share/lua/intf/luac.lua
index 9cb39ca..4c6beb5 100644
--- a/share/lua/intf/luac.lua
+++ b/share/lua/intf/luac.lua
@@ -1,7 +1,7 @@
--[==========================================================================[
luac.lua: lua compilation module for VLC (duplicates luac)
--[==========================================================================[
- Copyright (C) 2010 the VideoLAN team
+ Copyright (C) 2010 Antoine Cellerier
$Id$
Authors: Antoine Cellerier <dionoea at videolan dot org>
@@ -22,27 +22,46 @@
--]==========================================================================]
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 "io"
-vlc.msg.info("About to compile lua file")
-vlc.msg.info(" Input is '"..tostring(config.input).."'")
-vlc.msg.info(" Output is '"..tostring(config.output).."'")
+function compile()
+ vlc.msg.info("About to compile lua file")
+ 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
vlc.msg.err(line)
end
-else
- local bytecode = loadfile(config.input)
- local output = io.open(config.output, "wb")
- output:write(string.dump(bytecode))
end
-
vlc.misc.quit()
More information about the vlc-devel
mailing list