yaml-query

Sat, 17 Dec 2011 17:08:33 +0000

author
Matthew Wild <mwild1@gmail.com>
date
Sat, 17 Dec 2011 17:08:33 +0000
changeset 0
0757d85e604b
permissions
-rwxr-xr-x

Initial commit

#!/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

mercurial