Skip to content

Commit 9d8a4b2

Browse files
chermehdiMehdi Cheracher
authored and
Mehdi Cheracher
committed
Make CreateTaskDirectory return path of the task.
1 parent 8e8addf commit 9d8a4b2

File tree

2 files changed

+26
-17
lines changed

2 files changed

+26
-17
lines changed

LICENSE

Whitespace-only changes.

commands/parse.go

+26-17
Original file line numberDiff line numberDiff line change
@@ -34,70 +34,70 @@ func CreateFile(filePath string) (*os.File, error) {
3434
return os.OpenFile(filePath, os.O_TRUNC|os.O_CREATE|os.O_WRONLY, 0777)
3535
}
3636

37-
func CreateDirectoryStructure(task Task, config Config, rootDir string) error {
37+
func CreateDirectoryStructure(task Task, config Config, rootDir string) (string, error) {
3838
taskDir := path.Join(rootDir, task.Name)
3939
if err := os.Mkdir(taskDir, 0777); err != nil {
40-
return err
40+
return "", err
4141
}
4242
if err := os.Chdir(taskDir); err != nil {
43-
return err
43+
return "", err
4444
}
4545
egorMeta := NewEgorMeta(task, config)
4646

4747
file, err := CreateFile(config.ConfigFileName)
4848
if err != nil {
49-
return err
49+
return "", err
5050
}
5151
if err = egorMeta.Save(file); err != nil {
52-
return err
52+
return "", err
5353
}
5454
if err = os.Mkdir("inputs", 0777); err != nil {
55-
return err
55+
return "", err
5656
}
5757

5858
if err = os.Mkdir("outputs", 0777); err != nil {
59-
return err
59+
return "", err
6060
}
6161
inputs := egorMeta.Inputs
6262
for i := 0; i < len(inputs); i++ {
6363
file, err := CreateFile(inputs[i].Path)
6464
if err != nil {
65-
return err
65+
return "", err
6666
}
6767
_, err = file.WriteString(task.Tests[i].Input)
6868
if err != nil {
69-
return err
69+
return "", err
7070
}
7171
}
7272

7373
outputs := egorMeta.Outputs
7474
for i := 0; i < len(outputs); i++ {
7575
file, err := CreateFile(outputs[i].Path)
7676
if err != nil {
77-
return err
77+
return "", err
7878
}
7979
_, err = file.WriteString(task.Tests[i].Output)
8080
if err != nil {
81-
return err
81+
return "", err
8282
}
8383
}
8484
templateContent, err := templates.ResolveTemplateByLanguage(config.Lang.Default)
8585
if err != nil {
86-
return err
86+
return "", err
8787
}
8888
template := template2.New("Solution template")
8989
compiledTemplate, err := template.Parse(templateContent)
9090
if err != nil {
91-
return err
91+
return "", err
9292
}
9393
taskFile, err := CreateFile(egorMeta.TaskFile)
9494
if err != nil {
95-
return err
95+
return "", err
9696
}
9797
if err = compiledTemplate.Execute(taskFile, config); err != nil {
98-
return err
98+
return "", err
9999
}
100-
return nil
100+
return taskDir, nil
101101
}
102102

103103
// Given the json string returned by competitive companion
@@ -172,10 +172,12 @@ func ParseAction(context *cli.Context) error {
172172
if err != nil {
173173
return err
174174
}
175-
err = CreateDirectoryStructure(*task, *config, cwd)
175+
taskDir, err := CreateDirectoryStructure(*task, *config, cwd)
176176
if err != nil {
177177
color.Red("Error happened %v", err)
178+
return err
178179
}
180+
color.Green("Created task directory in : %s\n", taskDir)
179181
return nil
180182
}
181183

@@ -190,4 +192,11 @@ var ParseCommand = cli.Command{
190192
Usage: "Parse a task using 'Competitive Companion'",
191193
UsageText: "parse task from navigator",
192194
Action: ParseAction,
195+
//Flags: []cli.Flag{
196+
// //&cli.BoolFlag{
197+
// // Name: "cd",
198+
// // Aliases: []string{"c"},
199+
// // Usage: "Change to task directory after creating the task",
200+
// //},
201+
//},
193202
}

0 commit comments

Comments
 (0)