modernized some parts of code and new flags system
This commit is contained in:
@@ -147,4 +147,28 @@ func LChmod(L *lua.LState) int {
|
|||||||
return 2
|
return 2
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type Flag struct {
|
||||||
|
Name string
|
||||||
|
Path string
|
||||||
|
FlagType string
|
||||||
|
}
|
||||||
|
|
||||||
|
type Flags struct {
|
||||||
|
Flags []Flag
|
||||||
|
}
|
||||||
|
|
||||||
|
func (f Flags) LSetFlag(L *lua.LState) int {
|
||||||
|
flagtype := L.CheckString(1)
|
||||||
|
name := L.CheckString(2)
|
||||||
|
flagPath := L.CheckString(3)
|
||||||
|
|
||||||
|
f.Flags = append(f.Flags, Flag{
|
||||||
|
Name: name,
|
||||||
|
Path: flagPath,
|
||||||
|
FlagType: flagtype,
|
||||||
|
})
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
func llogger() *log.Logger { return log.New(os.Stderr, "script error: ", 0) }
|
func llogger() *log.Logger { return log.New(os.Stderr, "script error: ", 0) }
|
||||||
|
|||||||
@@ -35,6 +35,8 @@ type PacketLua struct {
|
|||||||
GlobalSources *[]Source
|
GlobalSources *[]Source
|
||||||
GlobalDependencies *PkgDependencies
|
GlobalDependencies *PkgDependencies
|
||||||
|
|
||||||
|
Flags *[]lua_utils.Flag
|
||||||
|
|
||||||
Build *lua.LFunction
|
Build *lua.LFunction
|
||||||
Install *lua.LFunction
|
Install *lua.LFunction
|
||||||
PreRemove *lua.LFunction
|
PreRemove *lua.LFunction
|
||||||
@@ -81,7 +83,7 @@ type GETSpecs struct {
|
|||||||
var ErrCantFindPacketDotLua = errors.New("can't find Packet.lua in .tar.zst file")
|
var ErrCantFindPacketDotLua = errors.New("can't find Packet.lua in .tar.zst file")
|
||||||
var ErrFileDontReturnTable = errors.New("invalid Packet.lua format: the file do not return a table")
|
var ErrFileDontReturnTable = errors.New("invalid Packet.lua format: the file do not return a table")
|
||||||
var ErrCannotFindPackageTable = errors.New("invalid Packet.lua format: can't find package table")
|
var ErrCannotFindPackageTable = errors.New("invalid Packet.lua format: can't find package table")
|
||||||
var ErrInstallFunctionDoesNotExist = errors.New("can not find instal()")
|
var ErrInstallFunctionDoesNotExist = errors.New("can not find install()")
|
||||||
var ErrSha256Sum = errors.New("false checksum")
|
var ErrSha256Sum = errors.New("false checksum")
|
||||||
|
|
||||||
// ReadPacket read a Packet.lua and alredy set global vars
|
// ReadPacket read a Packet.lua and alredy set global vars
|
||||||
@@ -103,6 +105,8 @@ func ReadPacket(f []byte, cfg *Config) (PacketLua, error) {
|
|||||||
L.SetGlobal("CURRENT_ARCH_NORMALIZED", lua.LString(normalizeArch(runtime.GOARCH)))
|
L.SetGlobal("CURRENT_ARCH_NORMALIZED", lua.LString(normalizeArch(runtime.GOARCH)))
|
||||||
L.SetGlobal("CURRENT_PLATAFORM", lua.LString(runtime.GOOS))
|
L.SetGlobal("CURRENT_PLATAFORM", lua.LString(runtime.GOOS))
|
||||||
|
|
||||||
|
var newFlags lua_utils.Flags
|
||||||
|
L.SetGlobal("setflags", L.NewFunction(newFlags.LSetFlag))
|
||||||
L.SetGlobal("pathjoin", L.NewFunction(lua_utils.Ljoin))
|
L.SetGlobal("pathjoin", L.NewFunction(lua_utils.Ljoin))
|
||||||
|
|
||||||
if err := L.DoString(string(f)); err != nil {
|
if err := L.DoString(string(f)); err != nil {
|
||||||
@@ -143,6 +147,10 @@ func ReadPacket(f []byte, cfg *Config) (PacketLua, error) {
|
|||||||
PreRemove: getFunctionFromTable(table, "pre_remove"),
|
PreRemove: getFunctionFromTable(table, "pre_remove"),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if len(newFlags.Flags) > 0 {
|
||||||
|
packetLua.Flags = &newFlags.Flags
|
||||||
|
}
|
||||||
|
|
||||||
packetLua.LuaState = L
|
packetLua.LuaState = L
|
||||||
if packetLua.Install == nil {
|
if packetLua.Install == nil {
|
||||||
return PacketLua{}, ErrInstallFunctionDoesNotExist
|
return PacketLua{}, ErrInstallFunctionDoesNotExist
|
||||||
@@ -205,7 +213,7 @@ func GetSource(url, method string, info any, tryAttempts int) (any, error) {
|
|||||||
client := http.Client{Timeout: 5 * time.Minute}
|
client := http.Client{Timeout: 5 * time.Minute}
|
||||||
|
|
||||||
var resp *http.Response
|
var resp *http.Response
|
||||||
for i := 0; i < tryAttempts; i++ {
|
for range tryAttempts {
|
||||||
resp, err = client.Do(req)
|
resp, err = client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -251,7 +259,7 @@ func GetSource(url, method string, info any, tryAttempts int) (any, error) {
|
|||||||
client := http.Client{Timeout: 5 * time.Minute}
|
client := http.Client{Timeout: 5 * time.Minute}
|
||||||
|
|
||||||
var resp *http.Response
|
var resp *http.Response
|
||||||
for i := 0; i < tryAttempts; i++ {
|
for range tryAttempts {
|
||||||
resp, err = client.Do(req)
|
resp, err = client.Do(req)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -328,6 +336,8 @@ func (pkg PacketLua) ExecuteBuild(cfg *Config) error {
|
|||||||
L.SetGlobal("SOURCESDIR", lua.LString(cfg.SourcesDir))
|
L.SetGlobal("SOURCESDIR", lua.LString(cfg.SourcesDir))
|
||||||
L.SetGlobal("PACKETDIR", lua.LString(cfg.PacketDir))
|
L.SetGlobal("PACKETDIR", lua.LString(cfg.PacketDir))
|
||||||
|
|
||||||
|
var newFlags lua_utils.Flags
|
||||||
|
L.SetGlobal("setflags", L.NewFunction(newFlags.LSetFlag))
|
||||||
L.SetGlobal("pathjoin", L.NewFunction(lua_utils.Ljoin))
|
L.SetGlobal("pathjoin", L.NewFunction(lua_utils.Ljoin))
|
||||||
|
|
||||||
os.Chdir(cfg.RootDir)
|
os.Chdir(cfg.RootDir)
|
||||||
@@ -335,7 +345,14 @@ func (pkg PacketLua) ExecuteBuild(cfg *Config) error {
|
|||||||
os.Setenv("PATH", os.Getenv("PATH")+":"+cfg.BinDir)
|
os.Setenv("PATH", os.Getenv("PATH")+":"+cfg.BinDir)
|
||||||
|
|
||||||
L.Push(pkg.Build)
|
L.Push(pkg.Build)
|
||||||
return L.PCall(0, 0, nil)
|
L.Call(0, 0)
|
||||||
|
|
||||||
|
if len(newFlags.Flags) > 0 && pkg.Flags != nil {
|
||||||
|
*pkg.Flags = append(*pkg.Flags, newFlags.Flags...)
|
||||||
|
} else if len(newFlags.Flags) > 0 {
|
||||||
|
*pkg.Flags = newFlags.Flags
|
||||||
|
}
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (pkg PacketLua) ExecuteInstall(cfg *Config) error {
|
func (pkg PacketLua) ExecuteInstall(cfg *Config) error {
|
||||||
@@ -362,13 +379,21 @@ func (pkg PacketLua) ExecuteInstall(cfg *Config) error {
|
|||||||
L.SetGlobal("SOURCESDIR", lua.LString(cfg.SourcesDir))
|
L.SetGlobal("SOURCESDIR", lua.LString(cfg.SourcesDir))
|
||||||
L.SetGlobal("PACKETDIR", lua.LString(cfg.PacketDir))
|
L.SetGlobal("PACKETDIR", lua.LString(cfg.PacketDir))
|
||||||
|
|
||||||
|
var newFlags lua_utils.Flags
|
||||||
|
L.SetGlobal("setflags", L.NewFunction(newFlags.LSetFlag))
|
||||||
L.SetGlobal("pathjoin", L.NewFunction(lua_utils.Ljoin))
|
L.SetGlobal("pathjoin", L.NewFunction(lua_utils.Ljoin))
|
||||||
|
|
||||||
os.Chdir(cfg.RootDir)
|
os.Chdir(cfg.RootDir)
|
||||||
|
|
||||||
os.Setenv("PATH", os.Getenv("PATH")+":"+cfg.BinDir)
|
os.Setenv("PATH", os.Getenv("PATH")+":"+cfg.BinDir)
|
||||||
|
|
||||||
L.Push(pkg.Install)
|
L.Push(pkg.Install)
|
||||||
L.Call(0, 0)
|
L.Call(0, 0)
|
||||||
|
|
||||||
|
if len(newFlags.Flags) > 0 && pkg.Flags != nil {
|
||||||
|
*pkg.Flags = append(*pkg.Flags, newFlags.Flags...)
|
||||||
|
} else if len(newFlags.Flags) > 0 {
|
||||||
|
*pkg.Flags = newFlags.Flags
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user