-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHowlfile.lua
53 lines (40 loc) · 1.43 KB
/
Howlfile.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
local projectName = "remoteShell"
Options:Default "trace"
Tasks:clean()
Tasks:minify "minify" {
input = "build/"..projectName..".un.lua",
output = "build/"..projectName..".min.un.lua",
}
-- add license to start of output file
Tasks:Task "license" (function(_, _, file, dest)
local fs = require("howl.platform").fs
local contents = table.concat( {
"--[[\n",
fs.read(File("License.txt")),
"\n]]\n\n",
fs.read(File("build/"..projectName..".min.un.lua")),
})
fs.write(File("build/"..projectName..".min.lua"), contents)
end)
:Maps("build/"..projectName..".min.un.lua", "build/"..projectName..".min.lua")
:description "Prepends license"
Tasks:require "mainBuild" (function(spec)
spec.sources:modify(function(file)
if file.name:find("%.lua$") then
return ('return assert(load(%q, %q, nil, _ENV))(...)'):format(file.contents, "@" .. file.relative)
end
end)
end){
include = ""..projectName.."/*.lua",
startup = ""..projectName.."/launcher.lua",
output = "build/"..projectName..".un.lua",
}
:Description "Main build task"
Tasks:Task "build" { "clean", "mainBuild", "minify", "license" }
:Description "Main build chain task"
Tasks:Task "run" (function()
shell.run("build/"..projectName..".un.lua")
end) :Requires { "build/"..projectName..".un.lua" }
Tasks:Task "cleanRun" { "clean", "run" }
:Description "Clean and run task"
Tasks:Default "build"