Custom VM
abox.Options on the one SDK, pkg/abox.
Sets vCPU, RAM, boot timeout, and VMMPath. Lists files (no model).
package main
import (
"context"
"fmt"
"os"
"path/filepath"
"time"
"github.com/AdminTurnedDevOps/ABox/pkg/abox"
)
func main() {
ctx := context.Background()
wd, _ := os.Getwd()
exe, _ := os.Executable()
vmm := filepath.Join(filepath.Dir(exe), "abox-vmm")
if _, err := os.Stat(vmm); err != nil {
vmm = "abox-vmm"
}
sess, err := abox.Open(ctx, abox.Options{
RepoPath: wd,
VCPU: 1,
RAMMiB: 768,
BootTimeout: 60 * time.Second,
VMMPath: vmm,
})
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
defer sess.Close()
fmt.Println("session", sess.ID())
paths, err := sess.ListFiles(ctx, ".", 2, 20)
if err != nil {
fmt.Fprintln(os.Stderr, err)
os.Exit(1)
}
for _, p := range paths {
fmt.Println(p)
}
}