changed old manifest.toml to Packet.lua and some improvements for future 100% Packet.lua implementation
This commit is contained in:
@@ -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() {
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user