aboutsummaryrefslogtreecommitdiff
path: root/src/lib/template.lua
blob: d1f3a94db10642a3b2594ff26ed6926d49035344 (plain)
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