diff options
-rw-r--r-- | golings/cmd/verify.go | 9 | ||||
-rw-r--r-- | golings/exercises/verify.go | 11 |
2 files changed, 14 insertions, 6 deletions
diff --git a/golings/cmd/verify.go b/golings/cmd/verify.go index c2a8f3a..6ab0fef 100644 --- a/golings/cmd/verify.go +++ b/golings/cmd/verify.go @@ -25,7 +25,7 @@ var cmdVerify = &cobra.Command{ } bar := progressbar.NewOptions( - 3, + verified.Total, progressbar.OptionSetWidth(50), progressbar.OptionEnableColorCodes(true), progressbar.OptionSetPredictTime(false), @@ -40,15 +40,18 @@ var cmdVerify = &cobra.Command{ }), ) - for v := range verified { + for v := range verified.Verified { bar.Describe(fmt.Sprintf("Running %s", v.Exercise.Name)) bar.Add(1) if v.Err != "" { fmt.Print("\n\n") color.Cyan("Failed to compile the exercise %s\n", v.Exercise.Path) color.Red("Check the error: %s", v.Err) - break + os.Exit(1) } } + + color.Green("Congratulations!!!") + color.Green("You passed all the exercises") }, } diff --git a/golings/exercises/verify.go b/golings/exercises/verify.go index 01997a7..5b53eda 100644 --- a/golings/exercises/verify.go +++ b/golings/exercises/verify.go @@ -1,12 +1,17 @@ package exercises +type VerifiedResult struct { + Verified chan Result + Total int +} + // Verify checks if all the exercises compile and pass the tests -func Verify() (<-chan Result, error) { +func Verify() (VerifiedResult, error) { verified := make(chan Result) exs, err := List() if err != nil { - return verified, err + return VerifiedResult{Verified: verified}, err } go func() { @@ -17,5 +22,5 @@ func Verify() (<-chan Result, error) { close(verified) }() - return verified, nil + return VerifiedResult{Verified: verified, Total: len(exs)}, nil } |