cmd: remove unnecessary GatedUi
The intent of this struct was to prevent non-json output to stdout. With the previous cleanup, this can now be done by simply changing the stdout stream to io.Discard. This is just one example of why passing around io.Writers for the streams is better than the UI interface.
This commit is contained in:
parent
e207a5de05
commit
b93d63b8d2
|
@ -4,6 +4,7 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io"
|
||||||
"os"
|
"os"
|
||||||
"os/signal"
|
"os/signal"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
@ -178,34 +179,33 @@ func (c *cmd) run(args []string) int {
|
||||||
}
|
}
|
||||||
|
|
||||||
config := bd.RuntimeConfig
|
config := bd.RuntimeConfig
|
||||||
|
if config.Logging.LogJSON {
|
||||||
// Setup gate to check if we should output CLI information
|
// Hide all non-error output when JSON logging is enabled.
|
||||||
cli := GatedUi{
|
ui.Ui = &cli.BasicUI{
|
||||||
JSONoutput: config.Logging.LogJSON,
|
BasicUi: mcli.BasicUi{ErrorWriter: c.ui.Stderr(), Writer: io.Discard},
|
||||||
ui: ui,
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create the agent
|
ui.Output("Starting Consul agent...")
|
||||||
cli.output("Starting Consul agent...")
|
|
||||||
|
|
||||||
segment := config.SegmentName
|
segment := config.SegmentName
|
||||||
if config.ServerMode {
|
if config.ServerMode {
|
||||||
segment = "<all>"
|
segment = "<all>"
|
||||||
}
|
}
|
||||||
cli.info(fmt.Sprintf(" Version: '%s'", c.versionHuman))
|
ui.Info(fmt.Sprintf(" Version: '%s'", c.versionHuman))
|
||||||
cli.info(fmt.Sprintf(" Node ID: '%s'", config.NodeID))
|
ui.Info(fmt.Sprintf(" Node ID: '%s'", config.NodeID))
|
||||||
cli.info(fmt.Sprintf(" Node name: '%s'", config.NodeName))
|
ui.Info(fmt.Sprintf(" Node name: '%s'", config.NodeName))
|
||||||
cli.info(fmt.Sprintf(" Datacenter: '%s' (Segment: '%s')", config.Datacenter, segment))
|
ui.Info(fmt.Sprintf(" Datacenter: '%s' (Segment: '%s')", config.Datacenter, segment))
|
||||||
cli.info(fmt.Sprintf(" Server: %v (Bootstrap: %v)", config.ServerMode, config.Bootstrap))
|
ui.Info(fmt.Sprintf(" Server: %v (Bootstrap: %v)", config.ServerMode, config.Bootstrap))
|
||||||
cli.info(fmt.Sprintf(" Client Addr: %v (HTTP: %d, HTTPS: %d, gRPC: %d, DNS: %d)", config.ClientAddrs,
|
ui.Info(fmt.Sprintf(" Client Addr: %v (HTTP: %d, HTTPS: %d, gRPC: %d, DNS: %d)", config.ClientAddrs,
|
||||||
config.HTTPPort, config.HTTPSPort, config.GRPCPort, config.DNSPort))
|
config.HTTPPort, config.HTTPSPort, config.GRPCPort, config.DNSPort))
|
||||||
cli.info(fmt.Sprintf(" Cluster Addr: %v (LAN: %d, WAN: %d)", config.AdvertiseAddrLAN,
|
ui.Info(fmt.Sprintf(" Cluster Addr: %v (LAN: %d, WAN: %d)", config.AdvertiseAddrLAN,
|
||||||
config.SerfPortLAN, config.SerfPortWAN))
|
config.SerfPortLAN, config.SerfPortWAN))
|
||||||
cli.info(fmt.Sprintf(" Encrypt: Gossip: %v, TLS-Outgoing: %v, TLS-Incoming: %v, Auto-Encrypt-TLS: %t",
|
ui.Info(fmt.Sprintf(" Encrypt: Gossip: %v, TLS-Outgoing: %v, TLS-Incoming: %v, Auto-Encrypt-TLS: %t",
|
||||||
config.EncryptKey != "", config.VerifyOutgoing, config.VerifyIncoming, config.AutoEncryptTLS || config.AutoEncryptAllowTLS))
|
config.EncryptKey != "", config.VerifyOutgoing, config.VerifyIncoming, config.AutoEncryptTLS || config.AutoEncryptAllowTLS))
|
||||||
// Enable log streaming
|
// Enable log streaming
|
||||||
cli.output("")
|
ui.Output("")
|
||||||
cli.output("Log data will now stream in as it occurs:\n")
|
ui.Output("Log data will now stream in as it occurs:\n")
|
||||||
logGate.Flush()
|
logGate.Flush()
|
||||||
|
|
||||||
// wait for signal
|
// wait for signal
|
||||||
|
@ -341,23 +341,6 @@ func (c *cmd) run(args []string) int {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type GatedUi struct {
|
|
||||||
JSONoutput bool
|
|
||||||
ui mcli.Ui
|
|
||||||
}
|
|
||||||
|
|
||||||
func (g *GatedUi) output(s string) {
|
|
||||||
if !g.JSONoutput {
|
|
||||||
g.ui.Output(s)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (g *GatedUi) info(s string) {
|
|
||||||
if !g.JSONoutput {
|
|
||||||
g.ui.Info(s)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (c *cmd) Synopsis() string {
|
func (c *cmd) Synopsis() string {
|
||||||
return synopsis
|
return synopsis
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue