small pixel drawing of a pufferfish lilp

main.go

package main

import (
	"log"
	"os/exec"
	"strings"

	"git.j3s.sh/lilp/config"
)

func startProc(p config.Process) error {
	log.Printf("proc: %+v", p)
	return nil
}

func cloneRepo(repo string, dest string) {
	if repo == "" {
		return
	}

	// git clone $repo $dest
}

func runProcEternally(commands []string) {
	// run eternally, lul
	for {
		for _, c := range commands {
			fullcmd := strings.Split(c, " ")
			cmd := exec.Command(fullcmd[0], fullcmd[1:]...)
			err := cmd.Run()
			if err != nil {
				log.Fatal(err)
			}
		}
	}
}

func main() {
	lilpConfig := config.ShittilyParseConfig("./example-config")
	if len(lilpConfig.Processes) == 0 {
		log.Fatal("no processes found in config. exiting cowardly.")
	}
	for _, proc := range lilpConfig.Processes {
		log.Printf("starting process %s", proc)
		cloneRepo(proc.Clone, proc.Name)
		// TODO: implement watching or whatever
		go runProcEternally(proc.RunCmds)
	}
}