main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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) }