#!/usr/bin/env lua5.1
local yaml = require "yaml";
local query = arg[1];
table.remove(arg, 1);
local query, string_out = query:gsub("^=", "");
local query_func = assert(loadstring("return "..query));
if #arg == 0 then arg[1] = "-"; end
for i, fn in ipairs(arg) do
local f = io.stdin;
if fn ~= "-" then
f = assert(io.open(fn, "r"));
end
local yaml_doc = yaml.load(f:read("*a"));
setfenv(query_func, yaml_doc);
local result = query_func();
if string_out == 1 then
print(result);
else
print(yaml.dump(result));
end
f:close();
end