// Copyright 2012-2016 Apcera Inc. All rights reserved. package main import ( "flag" "fmt" "os" "github.com/nats-io/gnatsd/server" ) var usageStr = ` Usage: gnatsd [options] Server Options: -a, --addr Bind to host address (default: 0.0.0.0) -p, --port Use port for clients (default: 4222) -P, --pid File to store PID -m, --http_port Use port for http monitoring -ms,--https_port Use port for https monitoring -c, --config Configuration file -sl,--signal [=] Send signal to gnatsd process (stop, quit, reopen, reload) Logging Options: -l, --log File to redirect log output -T, --logtime Timestamp log entries (default: true) -s, --syslog Log to syslog or windows event log -r, --remote_syslog Syslog server addr (udp://localhost:514) -D, --debug Enable debugging output -V, --trace Trace the raw protocol -DV Debug and trace Authorization Options: --user User required for connections --pass Password required for connections --auth Authorization token required for connections TLS Options: --tls Enable TLS, do not verify clients (default: false) --tlscert Server certificate file --tlskey Private key for server certificate --tlsverify Enable TLS, verify client certificates --tlscacert Client certificate CA for verification Cluster Options: --routes Routes to solicit and connect --cluster Cluster URL for solicited routes --no_advertise Advertise known cluster IPs to clients --connect_retries For implicit routes, number of connect retries Common Options: -h, --help Show this message -v, --version Show version --help_tls TLS help ` // usage will print out the flag options for the server. func usage() { fmt.Printf("%s\n", usageStr) os.Exit(0) } func main() { // Create a FlagSet and sets the usage fs := flag.NewFlagSet("nats-server", flag.ExitOnError) fs.Usage = usage // Configure the options from the flags/config file opts, err := server.ConfigureOptions(fs, os.Args[1:], server.PrintServerAndExit, fs.Usage, server.PrintTLSHelpAndDie) if err != nil { server.PrintAndDie(err.Error() + "\n" + usageStr) } // Create the server with appropriate options. s := server.New(opts) // Configure the logger based on the flags s.ConfigureLogger() // Start things up. Block here until done. if err := server.Run(s); err != nil { server.PrintAndDie(err.Error()) } }