From 923bd0a5e091257fc0cefe9d398e46be67ea9c87 Mon Sep 17 00:00:00 2001 From: Mahendra Paipuri Date: Sun, 14 Jan 2024 12:16:58 +0100 Subject: [PATCH] chore: Use exit instead of panic for CLI checks Signed-off-by: Mahendra Paipuri --- pkg/jobstats/cli/cli.go | 39 +++++++++++++++++++-------------------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/pkg/jobstats/cli/cli.go b/pkg/jobstats/cli/cli.go index c310870b..2cc70b53 100644 --- a/pkg/jobstats/cli/cli.go +++ b/pkg/jobstats/cli/cli.go @@ -79,8 +79,8 @@ func (b *BatchJobStatsServer) Main() { ).Default("").String() dataPath = b.App.Flag( "storage.data.path", - "Base path for data storage. Default is current working directory.", - ).Default("").String() + "Base path for data storage.", + ).Default("data").String() retentionPeriodString = b.App.Flag( "storage.data.retention.period", "How long to retain job data. Units Supported: y, w, d, h, m, s, ms.", @@ -259,38 +259,37 @@ func (b *BatchJobStatsServer) Main() { } } - // Set logger here after properly configuring promlog - logger := promlog.New(promlogConfig) - - level.Info(logger).Log("msg", fmt.Sprintf("Starting %s", b.appName), "version", version.Info()) - level.Info(logger).Log("msg", "Build context", "build_context", version.BuildContext()) - level.Info(logger).Log("fd_limits", batchjob_runtime.Uname()) - level.Info(logger).Log("fd_limits", batchjob_runtime.FdLimits()) - - runtime.GOMAXPROCS(*maxProcs) - level.Debug(logger).Log("msg", "Go MAXPROCS", "procs", runtime.GOMAXPROCS(0)) - // If dataPath is empty, use current directory if *dataPath == "" { - path, err := os.Getwd() - if err != nil { - panic(fmt.Sprintf("Failed to get current working directory. Error: %s", err)) - } - *dataPath = filepath.Join(path, "data") + *dataPath = "data" } // Get absolute Data path absDataPath, err := filepath.Abs(*dataPath) if err != nil { - panic(fmt.Sprintf("Failed to get absolute path for --storage.data.path=%s. Error: %s", *dataPath, err)) + fmt.Printf("Failed to get absolute path for --storage.data.path=%s. Error: %s", *dataPath, err) + os.Exit(1) } // Check if absDataPath exists and create one if it does not if _, err := os.Stat(absDataPath); os.IsNotExist(err) { if err := os.Mkdir(absDataPath, 0750); err != nil { - panic(fmt.Sprintf("Failed to create data directory. Error: %s", err)) + fmt.Printf("Failed to create data directory. Error: %s", err) + os.Exit(1) } } + + // Set logger here after properly configuring promlog + logger := promlog.New(promlogConfig) + + level.Info(logger).Log("msg", fmt.Sprintf("Starting %s", b.appName), "version", version.Info()) + level.Info(logger).Log("msg", "Build context", "build_context", version.BuildContext()) + level.Info(logger).Log("fd_limits", batchjob_runtime.Uname()) + level.Info(logger).Log("fd_limits", batchjob_runtime.FdLimits()) + + runtime.GOMAXPROCS(*maxProcs) + level.Debug(logger).Log("msg", "Go MAXPROCS", "procs", runtime.GOMAXPROCS(0)) + jobstatDBPath := filepath.Join(absDataPath, "jobstats.db") jobsLastTimeStampFile := filepath.Join(absDataPath, "lastjobsupdatetime")