linstrom/shared/flags.go
mstar 59dd8d82cf
All checks were successful
/ docker (push) Successful in 4m9s
More attempt at getting this shit to work
2025-04-14 17:00:11 +02:00

64 lines
1.7 KiB
Go

package shared
import (
"flag"
"fmt"
"os"
"github.com/rs/zerolog/log"
)
var (
FlagConfigFile *string = flag.String(
"config",
"config.toml",
"Location of the config file",
)
FlagConfigOnly *bool = flag.Bool(
"validate-config",
false,
"If set, the server will only validate the config (or write the default one) and then quit",
)
FlagStartNew *bool = flag.Bool("new", false, "Start the new system")
FlagStartDebugServer *bool = flag.Bool(
"debugserver",
false,
"Also start the local debugging server",
)
FlagDebugPort *string = flag.String(
"debugport",
"127.0.0.1:3305",
"Set the address the debug server will listen on. Format: IP:Port",
)
FlagLogFile *string = flag.String(
"logfile",
"/var/log/linstrom/logs",
"Set the target logging file. Linstrom auto-rotates these. If it can't be created, it will be ignored",
)
)
func flagUsage() {
executable, err := os.Executable()
if err != nil {
log.Fatal().Err(err).Msg("Failed to get own path")
}
fmt.Fprintf(os.Stderr, "Usage of %s:\n", executable)
fmt.Fprintln(os.Stderr, "\t-config string")
fmt.Fprintln(os.Stderr, "\t\tLocation of the config file (default: \"config.toml\")")
fmt.Fprintln(os.Stderr, "\t-loglevel string")
fmt.Fprintln(
os.Stderr,
"\t\tSet the logging level. Options are: Trace, Debug, Info, Warning, Error and Fatal. Case insensitive (default: \"Info\")",
)
fmt.Fprintln(os.Stderr, "\t-validate-config")
fmt.Fprintln(
os.Stderr,
"\t\tIf set, the server will only validate the config (or write the default one) and then quit",
)
fmt.Fprintln(os.Stderr, "\t-jsonlogs")
fmt.Fprintln(os.Stderr, "\t\tIf set, writes logging messages as json objects instead")
}
// func init() {
// flag.Usage = flagUsage
// }