From 51b788bb5069f07d0dc163dbdf0f56f302b7018d Mon Sep 17 00:00:00 2001 From: Hazel Noack Date: Wed, 16 Jul 2025 11:45:28 +0200 Subject: [PATCH] finished general help --- go.mod | 1 + go.sum | 2 ++ internal/cli/cli.go | 4 +++- internal/cli/help.go | 31 ++++++++++++++++++++++++++++++- 4 files changed, 36 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 4b7cafc..fc0c587 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,7 @@ go 1.24.2 require github.com/labstack/echo/v4 v4.13.4 require ( + github.com/TwiN/go-color v1.4.1 // indirect github.com/labstack/gommon v0.4.2 // indirect github.com/mattn/go-colorable v0.1.14 // indirect github.com/mattn/go-isatty v0.0.20 // indirect diff --git a/go.sum b/go.sum index ada8512..4748c27 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,7 @@ github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg= github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho= +github.com/TwiN/go-color v1.4.1 h1:mqG0P/KBgHKVqmtL5ye7K0/Gr4l6hTksPgTgMk3mUzc= +github.com/TwiN/go-color v1.4.1/go.mod h1:WcPf/jtiW95WBIsEeY1Lc/b8aaWoiqQpu5cf8WFxu+s= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/kirsle/configdir v0.0.0-20170128060238-e45d2f54772f h1:dKccXx7xA56UNqOcFIbuqFjAWPVtP688j5QMgmo6OHU= diff --git a/internal/cli/cli.go b/internal/cli/cli.go index ceea8b2..cebec4e 100644 --- a/internal/cli/cli.go +++ b/internal/cli/cli.go @@ -4,6 +4,8 @@ import ( "fmt" "log" "os" + + "github.com/TwiN/go-color" ) type ProgramFunction func() error @@ -21,7 +23,7 @@ type Argument struct { } var HelpHeader = `This is the help page of transfem-startpage. -transfem-startpage {program} {...args} +` + color.Bold + `transfem-startpage {program} {...args}` + color.Reset + ` The following Programs are available:` var Programs = []Program{ { diff --git a/internal/cli/help.go b/internal/cli/help.go index 546c42d..39980a3 100644 --- a/internal/cli/help.go +++ b/internal/cli/help.go @@ -3,13 +3,42 @@ package cli import ( "fmt" "log" + + "github.com/TwiN/go-color" ) +func padString(s string, n int) string { + missing := n - len(s) + if missing <= 0 { + return s + } + + for _ = range missing { + s = s + " " + } + + return s +} + func generalHelp() error { fmt.Println() fmt.Println(HelpHeader) + fmt.Println() + for _, p := range Programs { - fmt.Println(" - " + p.Name + ":\t" + p.ShortDescription) + fmt.Print(color.Bold + padString(p.Name, 7) + color.Reset) + + argumentString := color.Purple + for _, a := range p.Arguments { + requiredString := "" + if a.Required { + requiredString = "*" + } + argumentString = argumentString + " [" + requiredString + a.Name + ":" + a.Type + "]" + } + argumentString = argumentString + color.Reset + + fmt.Print(padString(argumentString, 40) + p.ShortDescription + "\n") } return nil }