From 64dc23010419c3dc87ebe3ae3c4028f5e21574c8 Mon Sep 17 00:00:00 2001 From: Mzack9999 Date: Thu, 31 Mar 2022 17:17:40 +0200 Subject: [PATCH] Making config file recoverable errors non fatal (#526) * Making config file recoverable errors non fatal * making migration non-fatal --- v2/go.mod | 2 +- v2/go.sum | 2 ++ v2/pkg/runner/options.go | 5 +++-- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/v2/go.mod b/v2/go.mod index 63d4d09..87cb618 100644 --- a/v2/go.mod +++ b/v2/go.mod @@ -33,7 +33,7 @@ require ( github.com/modern-go/reflect2 v1.0.1 // indirect github.com/pkg/errors v0.9.1 github.com/pmezard/go-difflib v1.0.0 // indirect - github.com/projectdiscovery/goflags v0.0.8-0.20220208063718-9bbeacc2fb8f + github.com/projectdiscovery/goflags v0.0.8-0.20220328195035-cc76049ee216 github.com/projectdiscovery/retryabledns v1.0.12-0.20210419174848-eec3ac17d61e // indirect github.com/projectdiscovery/stringsutil v0.0.0-20210804142656-fd3c28dbaafe // indirect golang.org/x/net v0.0.0-20210415231046-e915ea6b2b7d // indirect diff --git a/v2/go.sum b/v2/go.sum index a79ccc8..993b671 100644 --- a/v2/go.sum +++ b/v2/go.sum @@ -97,6 +97,8 @@ github.com/projectdiscovery/fileutil v0.0.0-20210928100737-cab279c5d4b5 h1:2dbm7 github.com/projectdiscovery/fileutil v0.0.0-20210928100737-cab279c5d4b5/go.mod h1:U+QCpQnX8o2N2w0VUGyAzjM3yBAe4BKedVElxiImsx0= github.com/projectdiscovery/goflags v0.0.8-0.20220208063718-9bbeacc2fb8f h1:FKTkdM1pPIL0gQRRQDoWjd/mZz+4DZ2Bk1l+ZbOJmIQ= github.com/projectdiscovery/goflags v0.0.8-0.20220208063718-9bbeacc2fb8f/go.mod h1:Jjwsf4eEBPXDSQI2Y+6fd3dBumJv/J1U0nmpM+hy2YY= +github.com/projectdiscovery/goflags v0.0.8-0.20220328195035-cc76049ee216 h1:Th8GrVWt6LJQAwneHikni4BpoLEPa69DPEnYCxAINmo= +github.com/projectdiscovery/goflags v0.0.8-0.20220328195035-cc76049ee216/go.mod h1:37KhVbVLllyuIAgpXGqcvE/hsFEwJ+ctEUSHawjhsBY= github.com/projectdiscovery/gologger v1.0.0/go.mod h1:Ok+axMqK53bWNwDSU1nTNwITLYMXMdZtRc8/y1c7sWE= github.com/projectdiscovery/gologger v1.1.4 h1:qWxGUq7ukHWT849uGPkagPKF3yBPYAsTtMKunQ8O2VI= github.com/projectdiscovery/gologger v1.1.4/go.mod h1:Bhb6Bdx2PV1nMaFLoXNBmHIU85iROS9y1tBuv7T5pMY= diff --git a/v2/pkg/runner/options.go b/v2/pkg/runner/options.go index 2ed3cac..dd44fff 100644 --- a/v2/pkg/runner/options.go +++ b/v2/pkg/runner/options.go @@ -70,7 +70,7 @@ func ParseOptions() *Options { if fileutil.FileExists(defaultConfigLocation) && !fileutil.FileExists(defaultProviderConfigLocation) { gologger.Info().Msgf("Detected old %s config file, trying to migrate providers to %s\n", defaultConfigLocation, defaultProviderConfigLocation) if err := migrateToProviderConfig(defaultConfigLocation, defaultProviderConfigLocation); err != nil { - gologger.Fatal().Msgf("Could not migrate providers from existing config (%s) to provider config (%s): %s\n", defaultConfigLocation, defaultProviderConfigLocation, err) + gologger.Warning().Msgf("Could not migrate providers from existing config (%s) to provider config (%s): %s\n", defaultConfigLocation, defaultProviderConfigLocation, err) } else { //cleanup the existing config file post migration os.Remove(defaultConfigLocation) @@ -138,7 +138,8 @@ func ParseOptions() *Options { } if options.Config != defaultConfigLocation { - if err := flagSet.MergeConfigFile(options.Config); err != nil { + // An empty source file is not a fatal error + if err := flagSet.MergeConfigFile(options.Config); err != nil && !errors.Is(err, io.EOF) { gologger.Fatal().Msgf("Could not read config: %s\n", err) } }