small pixel drawing of a pufferfish zoa

main.go

package main

import (
	"fmt"
	"log"
	"os"
	"path/filepath"

	"j3s.sh/zoa/env"
	"j3s.sh/zoa/shell"

	"mvdan.cc/sh/v3/interp"
)

var rootDir = "test/"

func main() {
	// if you run "zoa", i assume your PWD has a zoa entrypoint in it
	// if you run "zoa <repo> <branch>", i assume

	if os.Geteuid() != 0 {
		fmt.Println("you are running zoa as a non-root user. this is not advised")
		fmt.Println("but you do you")
	}

	// TODO: this writer is responsible for the random stdout
	// maybe save the stdout for debug mode somehow
	r, err := interp.New(interp.StdIO(nil, os.Stdout, os.Stderr))
	if err != nil {
		log.Fatal(err)
	}

	// set standard env vars for runtime
	r.Env, err = env.GenerateEnv()
	if err != nil {
		log.Fatal(err)
	}
	// for debuggin' fmt.Printf("%+v", r.Env)

	entrypoint := filepath.Join(rootDir, "main")
	shell.RunCommands(entrypoint, r)
}