// Fetch returns exercism problems. func Fetch(ctx *cli.Context) { c, err := config.New(ctx.GlobalString("config")) if err != nil { log.Fatal(err) } client := api.NewClient(c) problems, err := client.Fetch(ctx.Args()) if err != nil { log.Fatal(err) } submissionInfo, err := client.Submissions() if err != nil { log.Fatal(err) } if err := setSubmissionState(problems, submissionInfo); err != nil { log.Fatal(err) } hw := user.NewHomework(problems, c) if err := hw.Save(); err != nil { log.Fatal(err) } hw.Summarize(user.HWAll) }
// Restore returns a user's solved problems. func Restore(ctx *cli.Context) { c, err := config.New(ctx.GlobalString("config")) if err != nil { log.Fatal(err) } client := api.NewClient(c) problems, err := client.Restore() if err != nil { log.Fatal(err) } hw := user.NewHomework(problems, c) if err := hw.Save(); err != nil { log.Fatal(err) } hw.Summarize(user.HWNotSubmitted) }
// Demo returns one problem for each active track. func Demo(ctx *cli.Context) { c, err := config.New(ctx.GlobalString("config")) if err != nil { log.Fatal(err) } client := api.NewClient(c) problems, err := client.Demo() if err != nil { log.Fatal(err) } hw := user.NewHomework(problems, c) if err := hw.Save(); err != nil { log.Fatal(err) } hw.Report(user.HWAll) fmt.Println("Next step: choose a language, read the README, and make the test suite pass.") }