
This commit includes updates that affects the build, testing, and deployment of Tile38. - The root level build.sh has been broken up into multiple scripts and placed in the "scripts" directory. - The vendor directory has been updated to follow the Go modules rules, thus `make` should work on isolated environments. Also some vendored packages may have been updated to a later version, if needed. - The Makefile has been updated to allow for making single binaries such as `make tile38-server`. There is some scaffolding during the build process, so from now on all binaries should be made using make. For example, to run a development version of the tile38-cli binary, do this: make tile38-cli && ./tile38-cli not this: go run cmd/tile38-cli/main.go - Travis.CI docker push script has been updated to address a change to Docker's JSON repo meta output, which in turn fixes a bug where new Tile38 versions were not being properly pushed to Docker
55 lines
1.6 KiB
Go
55 lines
1.6 KiB
Go
package lua
|
|
|
|
const (
|
|
// BaseLibName is here for consistency; the base functions have no namespace/library.
|
|
BaseLibName = ""
|
|
// LoadLibName is here for consistency; the loading system has no namespace/library.
|
|
LoadLibName = "package"
|
|
// TabLibName is the name of the table Library.
|
|
TabLibName = "table"
|
|
// IoLibName is the name of the io Library.
|
|
IoLibName = "io"
|
|
// OsLibName is the name of the os Library.
|
|
OsLibName = "os"
|
|
// StringLibName is the name of the string Library.
|
|
StringLibName = "string"
|
|
// MathLibName is the name of the math Library.
|
|
MathLibName = "math"
|
|
// DebugLibName is the name of the debug Library.
|
|
DebugLibName = "debug"
|
|
// ChannelLibName is the name of the channel Library.
|
|
ChannelLibName = "channel"
|
|
// CoroutineLibName is the name of the coroutine Library.
|
|
CoroutineLibName = "coroutine"
|
|
)
|
|
|
|
type luaLib struct {
|
|
libName string
|
|
libFunc LGFunction
|
|
}
|
|
|
|
var luaLibs = []luaLib{
|
|
luaLib{LoadLibName, OpenPackage},
|
|
luaLib{BaseLibName, OpenBase},
|
|
luaLib{TabLibName, OpenTable},
|
|
luaLib{IoLibName, OpenIo},
|
|
luaLib{OsLibName, OpenOs},
|
|
luaLib{StringLibName, OpenString},
|
|
luaLib{MathLibName, OpenMath},
|
|
luaLib{DebugLibName, OpenDebug},
|
|
luaLib{ChannelLibName, OpenChannel},
|
|
luaLib{CoroutineLibName, OpenCoroutine},
|
|
}
|
|
|
|
// OpenLibs loads the built-in libraries. It is equivalent to running OpenLoad,
|
|
// then OpenBase, then iterating over the other OpenXXX functions in any order.
|
|
func (ls *LState) OpenLibs() {
|
|
// NB: Map iteration order in Go is deliberately randomised, so must open Load/Base
|
|
// prior to iterating.
|
|
for _, lib := range luaLibs {
|
|
ls.Push(ls.NewFunction(lib.libFunc))
|
|
ls.Push(LString(lib.libName))
|
|
ls.Call(1, 0)
|
|
}
|
|
}
|