diff --git a/internal/cli/cache.go b/internal/cli/cache.go new file mode 100644 index 0000000..33bd1d8 --- /dev/null +++ b/internal/cli/cache.go @@ -0,0 +1,8 @@ +package cli + +import "log" + +func Cache() error { + log.Println("running cache") + return nil +} diff --git a/internal/cli/cli.go b/internal/cli/cli.go new file mode 100644 index 0000000..965bb39 --- /dev/null +++ b/internal/cli/cli.go @@ -0,0 +1,59 @@ +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() +} diff --git a/internal/cli/help.go b/internal/cli/help.go new file mode 100644 index 0000000..2504940 --- /dev/null +++ b/internal/cli/help.go @@ -0,0 +1,8 @@ +package cli + +import "log" + +func Help() error { + log.Println("running help") + return nil +} diff --git a/internal/cli/start.go b/internal/cli/start.go new file mode 100644 index 0000000..08866cf --- /dev/null +++ b/internal/cli/start.go @@ -0,0 +1,8 @@ +package cli + +import "log" + +func Start() error { + log.Println("starting server") + return nil +} diff --git a/main.go b/main.go index 96f3d47..c4bc20c 100644 --- a/main.go +++ b/main.go @@ -11,6 +11,7 @@ import ( "os" "strconv" + "gitea.elara.ws/Hazel/transfem-startpage/internal/cli" "gitea.elara.ws/Hazel/transfem-startpage/internal/diyhrt" "gitea.elara.ws/Hazel/transfem-startpage/internal/rendering" "github.com/labstack/echo/v4" @@ -60,7 +61,7 @@ func getFileSystem() http.FileSystem { return http.FS(fsys) } -func main() { +func backMain() { profile := "default" if len(os.Args) > 1 { profile = os.Args[1] @@ -100,3 +101,7 @@ func main() { e.Logger.Fatal(e.Start(":" + strconv.Itoa(CurrentConfig.Server.Port))) } + +func main() { + cli.Cli() +}