-
Notifications
You must be signed in to change notification settings - Fork 2
/
make.lua
62 lines (57 loc) · 1.21 KB
/
make.lua
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
52
53
54
55
56
57
58
59
60
61
62
local function include(self, name)
if self.done[name] then
return
end
local unit = assert(io.open("./src/" .. name .. ".lua", "rb"))
local do_end = false
while true do
local line = unit:read("*l")
if not line then
break
end
local req = line:match("^require.-(%w+).-$")
if req then
assert(not do_end)
include(self, req)
elseif not line:match("^%s*$") then
if not do_end then
do_end = true
print("including " .. name)
self.file:write(
"-- // " .. name .. " // --\n",
"do\n")
end
self.file:write("\t" .. line .. "\n")
end
end
unit:close()
if do_end then
self.file:write("end\n")
end
self.file:write("\n")
self.done[name] = true
end
local function release(name, head)
print("assembling " .. name)
local file = assert(io.open("./release/" .. name .. ".lua", "wb"))
if head then
file:write(table.concat(head, "\n"), "\n")
end
include({done = {}, file = file}, name)
file:close()
end
local file = assert(io.open("./VERSION"))
local VERSION = file:read("*a"):match("^%s*(.-)%s*$")
file:close()
print(VERSION)
release("sich", {
"--",
"-- Sich",
"-- Cossacks 3 lua server",
"--",
"",
'SICH_VERSION = "' .. VERSION .. '"',
"",
})
release("hardlink")
print("done")