summaryrefslogtreecommitdiff
path: root/internal/config
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2021-10-09 21:10:29 +0300
committerPaul Buetow <paul@buetow.org>2021-10-10 13:36:41 +0300
commit97747ea0f3178f7f5890512d483fdccaa82846b0 (patch)
tree9ff1335ca26afc90e55fd6de416457e252d75a35 /internal/config
parent7a7169791a64190e1002e38bc9c04ad0d5c1ce1f (diff)
vetting and linting and some code restyling
Diffstat (limited to 'internal/config')
-rw-r--r--internal/config/args.go6
-rw-r--r--internal/config/client.go12
-rw-r--r--internal/config/config.go6
-rw-r--r--internal/config/initializer.go59
-rw-r--r--internal/config/server.go7
5 files changed, 45 insertions, 45 deletions
diff --git a/internal/config/args.go b/internal/config/args.go
index a671ae3..f721390 100644
--- a/internal/config/args.go
+++ b/internal/config/args.go
@@ -74,13 +74,13 @@ func (a *Args) String() string {
// SerializeOptions returns a string ready to be sent over the wire to the server.
func (a *Args) SerializeOptions() string {
- return fmt.Sprintf("quiet=%v:spartan=%v:serverless=%v", a.Quiet, a.Spartan, a.Serverless)
+ return fmt.Sprintf("quiet=%v:spartan=%v:serverless=%v", a.Quiet, a.Spartan,
+ a.Serverless)
}
// DeserializeOptions deserializes the options, but into a map.
func DeserializeOptions(opts []string) (map[string]string, error) {
options := make(map[string]string, len(opts))
-
for _, o := range opts {
kv := strings.SplitN(o, "=", 2)
if len(kv) != 2 {
@@ -97,9 +97,7 @@ func DeserializeOptions(opts []string) (map[string]string, error) {
}
val = string(decoded)
}
-
options[key] = val
}
-
return options, nil
}
diff --git a/internal/config/client.go b/internal/config/client.go
index ecd05c5..8227c68 100644
--- a/internal/config/client.go
+++ b/internal/config/client.go
@@ -15,9 +15,9 @@ type remoteTermColors struct {
HostnameAttr color.Attribute
HostnameBg color.BgColor
HostnameFg color.FgColor
- IdAttr color.Attribute
- IdBg color.BgColor
- IdFg color.FgColor
+ IDAttr color.Attribute
+ IDBg color.BgColor
+ IDFg color.FgColor
StatsOkAttr color.Attribute
StatsOkBg color.BgColor
StatsOkFg color.FgColor
@@ -124,9 +124,9 @@ func newDefaultClientConfig() *ClientConfig {
HostnameAttr: color.AttrBold,
HostnameBg: color.BgBlue,
HostnameFg: color.FgWhite,
- IdAttr: color.AttrDim,
- IdBg: color.BgBlue,
- IdFg: color.FgWhite,
+ IDAttr: color.AttrDim,
+ IDBg: color.BgBlue,
+ IDFg: color.FgWhite,
StatsOkAttr: color.AttrNone,
StatsOkBg: color.BgGreen,
StatsOkFg: color.FgBlack,
diff --git a/internal/config/config.go b/internal/config/config.go
index 077a658..b99b22b 100644
--- a/internal/config/config.go
+++ b/internal/config/config.go
@@ -9,11 +9,11 @@ const (
ScheduleUser string = "DTAIL-SCHEDULE"
// ContinuousUser is used for non-interactive continuous mapreduce queries.
ContinuousUser string = "DTAIL-CONTINUOUS"
- // InterruptTimeoutS is used to terminate DTail when Ctrl+C was pressed twice within a given interval.
+ // InterruptTimeoutS specifies the Ctrl+C log pause interval.
InterruptTimeoutS int = 3
- // ConnectionsPerCPU controls how many connections are established concurrently as a start (slow start)
+ // DefaultConnectionsPerCPU controls how many connections are established concurrently.
DefaultConnectionsPerCPU int = 10
- // DTailSSHServerDefaultPort is the default DServer port.
+ // DefaultSSHPort is the default DServer port.
DefaultSSHPort int = 2222
// DefaultLogLevel specifies the default log level (obviously)
DefaultLogLevel string = "INFO"
diff --git a/internal/config/initializer.go b/internal/config/initializer.go
index e4cbeaf..0a913db 100644
--- a/internal/config/initializer.go
+++ b/internal/config/initializer.go
@@ -20,13 +20,13 @@ type initializer struct {
type transformCb func(*initializer, *Args, []string) error
-func (c *initializer) parseConfig(args *Args) error {
+func (in *initializer) parseConfig(args *Args) error {
if strings.ToUpper(args.ConfigFile) == "NONE" {
return nil
}
if args.ConfigFile != "" {
- return c.parseSpecificConfig(args.ConfigFile)
+ return in.parseSpecificConfig(args.ConfigFile)
}
if homeDir, err := os.UserHomeDir(); err != nil {
@@ -35,7 +35,7 @@ func (c *initializer) parseConfig(args *Args) error {
paths = append(paths, fmt.Sprintf("%s/.dtail.conf", homeDir))
for _, configPath := range paths {
if _, err := os.Stat(configPath); !os.IsNotExist(err) {
- c.parseSpecificConfig(configPath)
+ in.parseSpecificConfig(configPath)
}
}
}
@@ -43,7 +43,7 @@ func (c *initializer) parseConfig(args *Args) error {
return nil
}
-func (c *initializer) parseSpecificConfig(configFile string) error {
+func (in *initializer) parseSpecificConfig(configFile string) error {
fd, err := os.Open(configFile)
if err != nil {
return fmt.Errorf("Unable to read config file: %v", err)
@@ -55,68 +55,74 @@ func (c *initializer) parseSpecificConfig(configFile string) error {
return fmt.Errorf("Unable to read config file %s: %v", configFile, err)
}
- if err := json.Unmarshal([]byte(cfgBytes), c); err != nil {
+ if err := json.Unmarshal([]byte(cfgBytes), in); err != nil {
return fmt.Errorf("Unable to parse config file %s: %v", configFile, err)
}
return nil
}
-func (i *initializer) transformConfig(sourceProcess source.Source, args *Args, additionalArgs []string) error {
+func (in *initializer) transformConfig(sourceProcess source.Source, args *Args,
+ additionalArgs []string) error {
switch sourceProcess {
case source.Server:
- return i.optimusPrime(transformServer, args, additionalArgs)
+ return in.optimusPrime(transformServer, args, additionalArgs)
case source.Client:
- return i.optimusPrime(transformClient, args, additionalArgs)
+ return in.optimusPrime(transformClient, args, additionalArgs)
case source.HealthCheck:
- return i.optimusPrime(transformHealthCheck, args, additionalArgs)
+ return in.optimusPrime(transformHealthCheck, args, additionalArgs)
default:
- return fmt.Errorf("Unable to transform config, unknown source '%s'", sourceProcess)
+ return fmt.Errorf("Unable to transform config, unknown source '%s'",
+ sourceProcess)
}
}
-func (i *initializer) optimusPrime(sourceCb transformCb, args *Args, additionalArgs []string) error {
+func (in *initializer) optimusPrime(sourceCb transformCb, args *Args,
+ additionalArgs []string) error {
+
// Copy args to config objects.
+ // NEXT: Maybe unify args and config structs?
if args.SSHPort != DefaultSSHPort {
- i.Common.SSHPort = args.SSHPort
+ in.Common.SSHPort = args.SSHPort
}
if args.LogLevel != DefaultLogLevel {
- i.Common.LogLevel = args.LogLevel
+ in.Common.LogLevel = args.LogLevel
}
if args.NoColor {
- i.Client.TermColorsEnable = false
+ in.Client.TermColorsEnable = false
}
if args.LogDir != "" {
- i.Common.LogDir = args.LogDir
+ in.Common.LogDir = args.LogDir
}
if args.Logger != "" {
- i.Common.Logger = args.Logger
+ in.Common.Logger = args.Logger
}
if args.ConnectionsPerCPU == 0 {
args.ConnectionsPerCPU = DefaultConnectionsPerCPU
}
// Setup log directory.
- if strings.Contains(i.Common.LogDir, "~/") {
+ if strings.Contains(in.Common.LogDir, "~/") {
homeDir, err := os.UserHomeDir()
if err != nil {
panic(err)
}
- i.Common.LogDir = strings.ReplaceAll(i.Common.LogDir, "~/", fmt.Sprintf("%s/", homeDir))
+ in.Common.LogDir = strings.ReplaceAll(in.Common.LogDir, "~/",
+ fmt.Sprintf("%s/", homeDir))
}
// Source type specific transormations.
- sourceCb(i, args, additionalArgs)
+ sourceCb(in, args, additionalArgs)
// Spartan mode.
if args.Spartan {
args.Quiet = true
args.NoColor = true
- i.Client.TermColorsEnable = false
+ in.Client.TermColorsEnable = false
if args.LogLevel == "" {
args.LogLevel = "ERROR"
- i.Common.LogLevel = "ERROR"
+ in.Common.LogLevel = "ERROR"
}
}
// Interpret additional args as file list or as query.
@@ -135,29 +141,28 @@ func (i *initializer) optimusPrime(sourceCb transformCb, args *Args, additionalA
return nil
}
-func transformClient(i *initializer, args *Args, additionalArgs []string) error {
+func transformClient(in *initializer, args *Args, additionalArgs []string) error {
// Serverless mode.
if args.Discovery == "" && (args.ServersStr == "" ||
strings.ToLower(args.ServersStr) == "serverless") {
// We are not connecting to any servers.
args.Serverless = true
- i.Common.LogLevel = "warn"
+ in.Common.LogLevel = "warn"
}
-
return nil
}
-func transformServer(i *initializer, args *Args, additionalArgs []string) error {
+func transformServer(in *initializer, args *Args, additionalArgs []string) error {
return nil
}
-func transformHealthCheck(i *initializer, args *Args, additionalArgs []string) error {
+func transformHealthCheck(in *initializer, args *Args, additionalArgs []string) error {
// Serverless mode.
if args.Discovery == "" && (args.ServersStr == "" ||
strings.ToLower(args.ServersStr) == "serverless") {
// We are not connecting to any servers.
args.Serverless = true
- i.Common.LogLevel = "warn"
+ in.Common.LogLevel = "warn"
}
args.TrustAllHosts = true
return nil
diff --git a/internal/config/server.go b/internal/config/server.go
index 8bbb394..677f5ac 100644
--- a/internal/config/server.go
+++ b/internal/config/server.go
@@ -4,8 +4,8 @@ import (
"errors"
)
-// Permissions map. Each SSH user has a list of permissions which
-// log files it is allowed to follow and which ones not.
+// Permissions map. Each SSH user has a list of permissions which log files it
+// is allowed to follow and which ones not.
type Permissions struct {
// The default user permissions.
Default []string
@@ -68,7 +68,6 @@ var ServerRelaxedAuthEnable bool
func newDefaultServerConfig() *ServerConfig {
defaultPermissions := []string{"^/.*"}
defaultBindAddress := "0.0.0.0"
-
return &ServerConfig{
SSHBindAddress: defaultBindAddress,
MaxConnections: 10,
@@ -89,10 +88,8 @@ func ServerUserPermissions(userName string) (permissions []string, err error) {
if p, ok := Server.Permissions.Users[userName]; ok {
permissions = p
}
-
if len(permissions) == 0 {
err = errors.New("Empty set of permission, user won't be able to open any files")
}
-
return
}