annotate src/luan/cmd_line.luan @ 1277:5ba660381bd5

fix Io.print()
author Franklin Schmidt <fschmidt@gmail.com>
date Tue, 11 Dec 2018 03:38:43 -0700
parents d6d0bd05ad8c
children 0cceff521abb
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()
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 517
diff changeset
5 local try = Luan.try or error()
693
ca169567ce07 module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents: 555
diff changeset
6 local Table = require "luan:Table.luan"
1277
5ba660381bd5 fix Io.print()
Franklin Schmidt <fschmidt@gmail.com>
parents: 1175
diff changeset
7 local pack = Table.pack or error()
5ba660381bd5 fix Io.print()
Franklin Schmidt <fschmidt@gmail.com>
parents: 1175
diff changeset
8 local unpack = Table.unpack or error()
693
ca169567ce07 module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents: 555
diff changeset
9 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
10 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
11
133
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
12
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
13 local args = {...}
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
14 if #args == 0 then
774
3e30cf310e56 change download to use bitbucket
Franklin Schmidt <fschmidt@gmail.com>
parents: 693
diff changeset
15 print("Luan "..Luan.VERSION)
554
18504c41b0be move debug() to Io and remove Debug module;
Franklin Schmidt <fschmidt@gmail.com>
parents: 517
diff changeset
16 Io.debug("> ")
133
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
17 else
462
2e79b47d02a2 remove all command line options;
Franklin Schmidt <fschmidt@gmail.com>
parents: 421
diff changeset
18 local file = args[1]
323
cd2924a1052c improve testing
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 322
diff changeset
19 Luan.arg = {}
133
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
20 for j,v in ipairs(args) do
462
2e79b47d02a2 remove all command line options;
Franklin Schmidt <fschmidt@gmail.com>
parents: 421
diff changeset
21 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
22 end
326
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 323
diff changeset
23 try {
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 323
diff changeset
24 function()
693
ca169567ce07 module URIs must now include ".luan"
Franklin Schmidt <fschmidt@gmail.com>
parents: 555
diff changeset
25 local main_file = load_file(file)
1277
5ba660381bd5 fix Io.print()
Franklin Schmidt <fschmidt@gmail.com>
parents: 1175
diff changeset
26 local rtn = pack( main_file( unpack(Luan.arg) ) )
5ba660381bd5 fix Io.print()
Franklin Schmidt <fschmidt@gmail.com>
parents: 1175
diff changeset
27 if rtn.n > 0 then
5ba660381bd5 fix Io.print()
Franklin Schmidt <fschmidt@gmail.com>
parents: 1175
diff changeset
28 print( unpack(rtn) )
5ba660381bd5 fix Io.print()
Franklin Schmidt <fschmidt@gmail.com>
parents: 1175
diff changeset
29 end
1175
d6d0bd05ad8c exit on bind conflict, serve "127.0.0.1" for serve_for_nginx
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
30 end
326
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 323
diff changeset
31 catch = function(e)
555
e25ba7a2e816 some String documentation and fixes
Franklin Schmidt <fschmidt@gmail.com>
parents: 554
diff changeset
32 -- java(); e.java.printStackTrace();
326
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 323
diff changeset
33 Io.print_to(Io.stderr, e )
1175
d6d0bd05ad8c exit on bind conflict, serve "127.0.0.1" for serve_for_nginx
Franklin Schmidt <fschmidt@gmail.com>
parents: 775
diff changeset
34 end
326
db37d6aee4db remove try-catch statement;
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents: 323
diff changeset
35 }
133
98aba462c422 add tools/cmd_line.luan
fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
parents:
diff changeset
36 end