From f1569dac05a34f8529bb479796d53dfb7f016e0f Mon Sep 17 00:00:00 2001 From: Quentin McGaw Date: Sun, 19 Apr 2020 20:40:31 +0000 Subject: [PATCH] Each stream uses a different color, fixes #136 --- cmd/main.go | 10 +++++----- go.mod | 1 + internal/constants/colors.go | 23 +++++++++++++++++++++++ 3 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 internal/constants/colors.go diff --git a/cmd/main.go b/cmd/main.go index d22ba9df..3793e8ad 100644 --- a/cmd/main.go +++ b/cmd/main.go @@ -146,7 +146,7 @@ func main() { stream, waitFn, err := dnsConf.Start(ctx, allSettings.DNS.VerbosityDetailsLevel) e.FatalOnError(err) waiter.Add(waitFn) - go streamMerger.Merge(stream, command.MergeName("unbound")) + go streamMerger.Merge(stream, command.MergeName("unbound"), command.MergeColor(constants.ColorUnbound())) dnsConf.UseDNSInternally(net.IP{127, 0, 0, 1}) // use Unbound err = dnsConf.UseDNSSystemWide(net.IP{127, 0, 0, 1}) // use Unbound e.FatalOnError(err) @@ -235,7 +235,7 @@ func main() { stream, waitFn, err := tinyProxyConf.Start(ctx) e.FatalOnError(err) waiter.Add(waitFn) - go streamMerger.Merge(stream, command.MergeName("tinyproxy")) + go streamMerger.Merge(stream, command.MergeName("tinyproxy"), command.MergeColor(constants.ColorTinyproxy())) } if allSettings.ShadowSocks.Enabled { @@ -251,14 +251,14 @@ func main() { stdout, stderr, waitFn, err := shadowsocksConf.Start(ctx, "0.0.0.0", allSettings.ShadowSocks.Port, allSettings.ShadowSocks.Password, allSettings.ShadowSocks.Log) e.FatalOnError(err) waiter.Add(waitFn) - go streamMerger.Merge(stdout, command.MergeName("shadowsocks")) - go streamMerger.Merge(stderr, command.MergeName("shadowsocks error")) + go streamMerger.Merge(stdout, command.MergeName("shadowsocks"), command.MergeColor(constants.ColorShadowsocks())) + go streamMerger.Merge(stderr, command.MergeName("shadowsocks error"), command.MergeColor(constants.ColorShadowsocksError())) } stream, waitFn, err := ovpnConf.Start(ctx) e.FatalOnError(err) waiter.Add(waitFn) - go streamMerger.Merge(stream, command.MergeName("openvpn")) + go streamMerger.Merge(stream, command.MergeName("openvpn"), command.MergeColor(constants.ColorOpenvpn())) signals.WaitForExit(func(signal string) int { logger.Warn("Caught OS signal %s, shutting down", signal) if allSettings.VPNSP == "pia" && allSettings.PIA.PortForwarding.Enabled { diff --git a/go.mod b/go.mod index 3e9d779b..f8577fba 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/qdm12/private-internet-access-docker go 1.14 require ( + github.com/fatih/color v1.9.0 github.com/golang/mock v1.4.3 github.com/kyokomi/emoji v2.2.2+incompatible github.com/qdm12/golibs v0.0.0-20200419200147-04dea671b563 diff --git a/internal/constants/colors.go b/internal/constants/colors.go new file mode 100644 index 00000000..d608e267 --- /dev/null +++ b/internal/constants/colors.go @@ -0,0 +1,23 @@ +package constants + +import "github.com/fatih/color" + +func ColorUnbound() color.Color { + return *color.New(color.FgCyan) +} + +func ColorTinyproxy() color.Color { + return *color.New(color.FgHiMagenta) +} + +func ColorShadowsocks() color.Color { + return *color.New(color.FgHiYellow) +} + +func ColorShadowsocksError() color.Color { + return *color.New(color.FgHiRed) +} + +func ColorOpenvpn() color.Color { + return *color.New(color.FgHiMagenta) +}