return function() local args = require('arg') { strict = false, { name = "target" }, { name = "template", description = "template name or path to build.lua", kind = "property", required = true, }, } local path = manager.get(args.template) or Path:new(args.template) if not path:exists() then error('template does not exist.') end local builder = Builder:from_template(path) local instance = builder:build(args) instance:save_to(args.target) end