babillard/cmd/cmd.go
Victor Lacasse-Beaudoin 605206197a change!: commandline tool from serpents/cobra/viper to couleuvre
Ajouter `config.Config` pour stocker valeurs de flags

Migrer `cmd/` à couleuvre

Ajouter `cmd.Cfg()` pour retourner une copie courante de la configuration.

Cleanup dependencies avec `go get` et `go mod tidy`

BREAKING: renommer flags
BREAKING: déplacer `cmd.runServer` à `handlers.RunServer(cfg config.Config)`
BREAKING: changer backend à couleuvre, qui gère différemment le commandline
2023-12-04 19:05:56 -05:00

67 lines
1.4 KiB
Go

package cmd
import (
"flag"
"os"
"codeberg.org/vlbeaudoin/couleuvre"
"git.agecem.com/agecem/babillard/config"
"git.agecem.com/agecem/babillard/handlers"
)
var cfg config.Config
func Cfg() config.Config { return cfg }
func init() {
flag.StringVar(&cfg.ServerContenuDir, ServerContenuDirName, ServerContenuDirDefault, ServerContenuDirDescription)
flag.IntVar(&cfg.ServerPort, ServerPortName, ServerPortDefault, ServerPortDescription)
}
const (
ServerContenuDirName = "servercontenudir"
ServerContenuDirDefault = "contenu"
ServerContenuDirDescription = "Répertoire du contenu à exposer"
ServerPortName = "serverport"
ServerPortDefault int = 8080
ServerPortDescription = "Port réseau à utiliser pour le serveur"
)
const (
ServerCmdName = "server"
ServerCmdDesc = "Démarrer le serveur web"
)
func ServerCmdExecuter() error {
handlers.RunServer(Cfg())
return nil
}
func Execute() error {
app := couleuvre.NewApp("BABILLARD_", ".", "_")
if err := app.Parse(&cfg); err != nil {
return err
}
if err := app.NewCommand(ServerCmdName, ServerCmdDesc, ServerCmdExecuter); err != nil {
return err
}
var commandName string
if len(os.Args) > 1 {
commandName = flag.Arg(0)
}
cmd, err := app.ParseCommand(commandName)
if err != nil {
return err
}
if err := cmd.Execute(); err != nil {
return err
}
return nil
}