Mercurial Hosting > luan
view src/luan/cmd_line.luan @ 170:7c792a328a83
add web component
git-svn-id: https://luan-java.googlecode.com/svn/trunk@171 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Sun, 22 Jun 2014 05:20:30 +0000 |
parents | 9169581dc8fc |
children |
line wrap: on
line source
local standalone_usage = [=[ usage: java luan.CmdLine [options] [script [args]] Available options are: -e stat execute string 'stat' -i enter interactive mode after executing 'script' -v show version information -- stop handling options - stop handling options and execute stdin ]=] local function standalone_error(msg) Io.stderr.write( msg, "\n", standalone_usage ) end local args = {...} local interactive = false local showVersion = false local i = 1 if #args == 0 then interactive = true showVersion = true else while i <= #args do local arg = args[i] if arg.sub(1,1) ~= "-" or arg == "--" then break end if arg == "-i" then interactive = true elseif arg == "-v" then showVersion = true elseif arg == "-e" then i = i + 1 if i == #args then standalone_error "'-e' needs argument" return end local cmd = args[i] local stat = load(cmd,"(command line)",true,true) local result = Table.pack( stat() ) if result.n > 0 then print( Table.unpack(result,1,result.n) ) end elseif arg == "-" then local src = Io.stdin.read_text() local stdin = load(src,"stdin") stdin() return else standalone_error( "unrecognized option '"..arg.."'" ) return end i = i + 1 end end if showVersion then print(_VERSION) end if i <= #args then local file = args[i] _G.arg = {} for j,v in ipairs(args) do _G.arg[j-i] = v end local main_file = load_file(file) main_file( Table.unpack(_G.arg) ) end if interactive then Debug.debug("> ") end