aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--golings/cmd/verify.go9
-rw-r--r--golings/exercises/verify.go11
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
}