diff -r 000000000000 -r 0757d85e604b yaml-query --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/yaml-query Sat Dec 17 17:08:33 2011 +0000 @@ -0,0 +1,29 @@ +#!/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 +