yaml-query

changeset 0
0757d85e604b
equal deleted inserted replaced
-1:000000000000 0:0757d85e604b
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

mercurial