64 lines
1.7 KiB
Go
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
|
|
// }
|