|
1 #!/usr/bin/env lua5.1 |
|
2 |
|
3 local yaml = require "yaml"; |
|
4 |
|
5 local query = arg[1]; |
|
6 table.remove(arg, 1); |
|
7 |
|
8 local query, string_out = query:gsub("^=", ""); |
|
9 |
|
10 local query_func = assert(loadstring("return "..query)); |
|
11 |
|
12 if #arg == 0 then arg[1] = "-"; end |
|
13 |
|
14 for i, fn in ipairs(arg) do |
|
15 local f = io.stdin; |
|
16 if fn ~= "-" then |
|
17 f = assert(io.open(fn, "r")); |
|
18 end |
|
19 local yaml_doc = yaml.load(f:read("*a")); |
|
20 setfenv(query_func, yaml_doc); |
|
21 local result = query_func(); |
|
22 if string_out == 1 then |
|
23 print(result); |
|
24 else |
|
25 print(yaml.dump(result)); |
|
26 end |
|
27 f:close(); |
|
28 end |
|
29 |