aboutsummaryrefslogtreecommitdiff
path: root/src/lib/template.lua
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/template.lua')
-rw-r--r--src/lib/template.lua51
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