func exportProblem(problem *model.Problem, helper *formats.ProblemHelper, shortName string) { shortName = strings.ToLower(shortName) testsIn := fmt.Sprintf(filepath.Join(shortName, "in", "%s%%02d.in"), shortName) testsOut := fmt.Sprintf(filepath.Join(shortName, "out", "%s%%02d.out"), shortName) programs := fmt.Sprintf(filepath.Join(shortName, "prog", "%s{ID}.{EXT}"), shortName) PanicIf(helper.GenerateTestsInput(testsIn)) PanicIf(helper.GenerateTestsOutput(testsOut)) PanicIf(helper.GenerateSolutions(programs)) helper.Archive.MkdirAll(filepath.Join(shortName, "doc")) file, err := helper.Archive.Create(filepath.Join(shortName, "doc", shortName+"zad.tex")) PanicIf(err, "Cannot create problem description: %s", err) err = DescriptionTemplate.Execute(file, problem) PanicIf(err, "Cannot write problem description: %s", err) file.Close() for _, solution := range problem.Solutions { PanicIf(helper.GenerateSolution(solution, 1, strings.Replace(programs, "{ID}", "", -1))) break } }