From 76bc68cb6abb3105bfb154fc59ecdfd54f8ff564 Mon Sep 17 00:00:00 2001 From: maride Date: Tue, 4 Sep 2018 16:11:40 +0200 Subject: Increase logging --- src/seed.go | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) (limited to 'src/seed.go') diff --git a/src/seed.go b/src/seed.go index 5dc849c..3dce55f 100644 --- a/src/seed.go +++ b/src/seed.go @@ -2,6 +2,8 @@ package main import ( "flag" + "fmt" + "github.com/pkg/errors" "io/ioutil" "log" "encoding/json" @@ -17,21 +19,21 @@ func registerSeedFlags() { } // Read a given seed file and return their containing challenges -func readSeedFile(path string) ([]Challenge) { +func readSeedFile(path string) ([]Challenge, error) { var jsonContents map[string]interface{} // Read file rawContents, readError := ioutil.ReadFile(path) if readError != nil { log.Printf("Failed to read seed file at %s: %s", *seedFilePath, readError.Error()) - return nil + return nil, readError } // Convert JSON String to map unmarshalError := json.Unmarshal(rawContents, &jsonContents) if unmarshalError != nil { log.Printf("Failed to parse JSON in seed file at %s: %s", *seedFilePath, unmarshalError.Error()) - return nil + return nil, unmarshalError } tmpChallenges := []Challenge{} @@ -62,16 +64,29 @@ func readSeedFile(path string) ([]Challenge) { } } - return tmpChallenges + return tmpChallenges, nil } // Read the file we set up using flags and store the returned challenge array -func getChallengesFromSeedFile() { - tmpChallenges := readSeedFile(*seedFilePath) +func getChallengesFromSeedFile() (error) { + tmpChallenges, error := readSeedFile(*seedFilePath) + + if error != nil { + // Couldn't read file, return error + return error + } + + if tmpChallenges == nil { + // Could read file, but it didn't contain any parseable challenges - return + return errors.New(fmt.Sprintf("Empty seed file at %s? No challenges found", *seedFilePath)) + } if tmpChallenges != nil { + // returned challenges found! Set them. challenges = tmpChallenges } + + return nil } // Generate a JSON string from the stored challenges, stripped from content which might spoil the user -- cgit 1.4.1