annotate src/luan/cmd_line.luan @ 1520:d9a5405a3102

try statement
author Franklin Schmidt <fschmidt@gmail.com>
date Sun, 21 Jun 2020 18:14:13 -0600
parents 219f2b937f2b
children 46cf5137cb6b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
693
ca169567ce07 module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents: 555
diff changeset
1 local Luan = require "luan:Luan.luan"
554
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 517
diff changeset
2 local error = Luan.error
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 517
diff changeset
3 local ipairs = Luan.ipairs or error()
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 517
diff changeset
4 local load_file = Luan.load_file or error()
693
ca169567ce07 module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents: 555
diff changeset
5 local Table = require "luan:Table.luan"
1277
5ba660381bd5 fix Io.print()
Franklin Schmidt <fschmidt@gmail.com>
parents: 1175
diff changeset
6 local pack = Table.pack or error()
5ba660381bd5 fix Io.print()
Franklin Schmidt <fschmidt@gmail.com>
parents: 1175
diff changeset
7 local unpack = Table.unpack or error()
693
ca169567ce07 module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents: 555
diff changeset
8 local Io = require "luan:Io.luan"
554
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 517
diff changeset
9 local print = Io.print or error()
320
fed1893821bf remove global namespace
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 313
diff changeset
10
133
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
11
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
12 local args = {...}
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
13 if #args == 0 then
774
3e30cf310e56 change download to use bitbucket
Franklin Schmidt <fschmidt@gmail.com>
parents: 693
diff changeset
14 print("Luan "..Luan.VERSION)
554
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 517
diff changeset
15 Io.debug("> ")
133
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
16 else
462
2e79b47d02a2 remove all command line options;
Franklin Schmidt <fschmidt@gmail.com>
parents: 421
diff changeset
17 local file = args[1]
323
cd2924a1052c improve testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 322
diff changeset
18 Luan.arg = {}
133
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
19 for j,v in ipairs(args) do
462
2e79b47d02a2 remove all command line options;
Franklin Schmidt <fschmidt@gmail.com>
parents: 421
diff changeset
20 Luan.arg[j-1] = v
133
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
21 end
1520
d9a5405a3102 try statement
Franklin Schmidt <fschmidt@gmail.com>
parents: 1454
diff changeset
22 try
d9a5405a3102 try statement
Franklin Schmidt <fschmidt@gmail.com>
parents: 1454
diff changeset
23 local main_file = load_file(file) or error("file '"..file.."' not found")
d9a5405a3102 try statement
Franklin Schmidt <fschmidt@gmail.com>
parents: 1454
diff changeset
24 local rtn = pack( main_file( unpack(Luan.arg) ) )
d9a5405a3102 try statement
Franklin Schmidt <fschmidt@gmail.com>
parents: 1454
diff changeset
25 if rtn.n > 0 then
d9a5405a3102 try statement
Franklin Schmidt <fschmidt@gmail.com>
parents: 1454
diff changeset
26 print( unpack(rtn) )
1175
d6d0bd05ad8c exit on bind conflict, serve "127.0.0.1" for serve_for_nginx
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
27 end
1520
d9a5405a3102 try statement
Franklin Schmidt <fschmidt@gmail.com>
parents: 1454
diff changeset
28 catch e
d9a5405a3102 try statement
Franklin Schmidt <fschmidt@gmail.com>
parents: 1454
diff changeset
29 -- require "java"; e.java.printStackTrace();
d9a5405a3102 try statement
Franklin Schmidt <fschmidt@gmail.com>
parents: 1454
diff changeset
30 Io.print_to(Io.stderr, e )
d9a5405a3102 try statement
Franklin Schmidt <fschmidt@gmail.com>
parents: 1454
diff changeset
31 end
133
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
32 end