changed old manifest.toml to Packet.lua and some improvements for future 100% Packet.lua implementation

This commit is contained in:
2025-10-25 12:44:40 -03:00
parent 5ba30c617a
commit ecce74d2e9
11 changed files with 420 additions and 130 deletions

View File

@@ -2,9 +2,9 @@ package build
import (
"fmt"
"io"
"os"
"os/exec"
"path/filepath"
"strings"
utils_lua "packets/internal/utils/lua"
@@ -196,53 +196,11 @@ func (container Container) lpopen(L *lua.LState) int {
return 2
}
func (container Container) lGet(L *lua.LState) int {
src := L.CheckString(1)
dest := L.CheckString(2)
func (container Container) lDir(L *lua.LState) int {
dir := L.CheckString(1)
file, err := container.FS.Open(src)
if err != nil {
L.Push(lua.LFalse)
L.Push(lua.LString(err.Error()))
return 2
}
defer file.Close()
info, err := file.Stat()
if err != nil {
L.Push(lua.LFalse)
L.Push(lua.LString(err.Error()))
return 2
}
fileBlob, err := io.ReadAll(file)
if err != nil {
L.Push(lua.LFalse)
L.Push(lua.LString(err.Error()))
return 2
}
if err := os.WriteFile(dest, fileBlob, info.Mode()); err != nil {
L.Push(lua.LFalse)
L.Push(lua.LString(err.Error()))
return 2
}
L.Push(lua.LTrue)
L.Push(lua.LNil)
return 2
}
func (container Container) lCopyToContainer(L *lua.LState) int {
if err := container.CopyHostToContainer(L.CheckString(1), L.CheckString(2)); err != nil {
L.Push(lua.LFalse)
L.Push(lua.LString(err.Error()))
return 2
}
L.Push(lua.LTrue)
L.Push(lua.LNil)
return 2
L.Push(lua.LString(filepath.Join(container.Root, filepath.Clean(dir))))
return 1
}
func (container Container) GetLuaState() {

View File

@@ -6,8 +6,8 @@ import (
"encoding/json"
"io"
"os"
"packets/configs"
"packets/internal/consts"
"packets/internal/packet"
"path/filepath"
_ "modernc.org/sqlite"
@@ -20,18 +20,17 @@ type Container struct {
BuildID BuildID
Root string
FS afero.Fs
DataDir string
LuaState lua.LState
Manifest configs.Manifest
Manifest packet.PacketLua
uses int
DeleteAfter bool
}
func NewContainer(dataDir string, manifest configs.Manifest) (Container, error) {
func NewContainer(manifest packet.PacketLua) (Container, error) {
var container Container
var err error
container.BuildID, err = getBuildId(manifest.Build.BuildDependencies)
container.BuildID, err = getBuildId(manifest.BuildDependencies)
if err != nil {
return Container{}, err
}
@@ -66,13 +65,8 @@ func NewContainer(dataDir string, manifest configs.Manifest) (Container, error)
fileSystem := afero.NewBasePathFs(baseFs, container.Root)
container.Manifest = manifest
container.DataDir = dataDir
container.FS = fileSystem
if err := container.CopyHostToContainer(dataDir, "/data"); err != nil {
return Container{}, err
}
if err := container.FS.MkdirAll(BinDir, 0777); err != nil {
return Container{}, err
}

View File

@@ -22,7 +22,7 @@ func (container Container) createNew() error {
if err := os.Chown(filepath.Join(consts.BuildImagesDir, string(container.BuildID)), packetsuid, 0); err != nil {
return err
}
dependencies, err := utils.ResolvDependencies(container.Manifest.Build.BuildDependencies)
dependencies, err := utils.ResolvDependencies(container.Manifest.BuildDependencies)
if err != nil {
return err
}
@@ -39,6 +39,8 @@ func (container Container) createNew() error {
}
wg.Wait()
container.Root = filepath.Join(consts.BuildImagesDir, string(container.BuildID))
container.saveBuild()
return nil
}