#!/usr/bin/env lua -- --- T2-COPYRIGHT-NOTE-BEGIN --- -- This copyright note is auto-generated by ./scripts/Create-CopyPatch. -- -- T2 SDE: misc/lua/parse-desc.lua -- Copyright (C) 2005 - 2006 The T2 SDE Project -- -- More information can be found in the files COPYING and README. -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; version 2 of the License. A copy of the -- GNU General Public License can be found in the file COPYING. -- --- T2-COPYRIGHT-NOTE-END --- -- try this: -- -- this file looks quite complicated already, but a comparsion to grep might help: -- -- time lua misc/lua/parse-desc.lua package/base/*/*.desc > /dev/null -- time grep "^[[]" package/base/*/*.desc > /dev/null -- require "misc/lua/sde/desc" if #arg < 1 then print("Usage: lua misc/lua/parse-desc.lua [path-to-desc-file]") os.exit(1) end function printf(...) io.write(string.format(unpack(arg))) end -- parse all files pkgs = {} for i,file in ipairs(arg) do if i > 0 then _,_,repo,pkg = string.find(file, "package/([^/]*)/([^/]*)/*"); -- put all parsed files into a table pkgs[pkg] = desc.parse(file) end end -- output for pkg,tab in pairs(pkgs) do printf("Package %s:\n", pkg); for k,v in pairs(tab) do if type(v) == "table" then printf(" %s: %s\n", k, table.concat(v,"\n ")); else printf(" %s: %s\n", k, v); end end end