2025-07-16 11:09:18 +02:00

60 lines
1001 B
Go

package cli
import (
"fmt"
"log"
"os"
)
type ProgramFunction func() error
type Program struct {
Name string
Function ProgramFunction
Description string
}
var HelpHeader = `Meow
Ze
Dong`
var Programs = []Program{
{
Name: "help",
Function: Help,
Description: "get more information on how the cli or a program works",
},
{
Name: "start",
Function: Start,
Description: "start the webserver",
},
{
Name: "cache",
Function: Cache,
Description: "do something with the cache",
},
}
func Cli() {
fmt.Println("running transfem startpage")
programName := "help"
if len(os.Args) > 1 {
programName = os.Args[1]
}
log.Println("running program", programName)
var selectedProgram *Program = nil
for i, p := range Programs {
if p.Name == programName {
selectedProgram = &Programs[i]
break
}
}
if selectedProgram == nil {
log.Panicln("couldn't find program", programName, ". EXITING")
}
selectedProgram.Function()
}