diff options
Diffstat (limited to 'src/lib/template.lua')
| -rw-r--r-- | src/lib/template.lua | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/lib/template.lua b/src/lib/template.lua new file mode 100644 index 0000000..d1f3a94 --- /dev/null +++ b/src/lib/template.lua @@ -0,0 +1,51 @@ +Template = {} + +function Template:new() + local template = { + directories = {}, + files = {}, + options = {}, + arguments = {} + } + + setmetatable(template, self) + self.__index = self + + return template +end + +function Template:set_option(name, description, default, required) + required = required == nil or required + self.options[name] = { + name = name, + default = default, + required = required, + kind = 'property', + description = description, + } + +end + +function Template:option(name) + if not self.options[name] then + self:set_option(name) + end + + return function() + return self.arguments[name] + end +end + +function Template:add_directory(path, env) + self.directories[#self.directories + 1] = { + path = path, + env = env, + } +end + +function Template:add_file(path, env) + self.files[#self.files + 1] = { + path = path, + env = env, + } +end |