1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
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
|