@@ -34,70 +34,70 @@ func CreateFile(filePath string) (*os.File, error) {
34
34
return os .OpenFile (filePath , os .O_TRUNC | os .O_CREATE | os .O_WRONLY , 0777 )
35
35
}
36
36
37
- func CreateDirectoryStructure (task Task , config Config , rootDir string ) error {
37
+ func CreateDirectoryStructure (task Task , config Config , rootDir string ) ( string , error ) {
38
38
taskDir := path .Join (rootDir , task .Name )
39
39
if err := os .Mkdir (taskDir , 0777 ); err != nil {
40
- return err
40
+ return "" , err
41
41
}
42
42
if err := os .Chdir (taskDir ); err != nil {
43
- return err
43
+ return "" , err
44
44
}
45
45
egorMeta := NewEgorMeta (task , config )
46
46
47
47
file , err := CreateFile (config .ConfigFileName )
48
48
if err != nil {
49
- return err
49
+ return "" , err
50
50
}
51
51
if err = egorMeta .Save (file ); err != nil {
52
- return err
52
+ return "" , err
53
53
}
54
54
if err = os .Mkdir ("inputs" , 0777 ); err != nil {
55
- return err
55
+ return "" , err
56
56
}
57
57
58
58
if err = os .Mkdir ("outputs" , 0777 ); err != nil {
59
- return err
59
+ return "" , err
60
60
}
61
61
inputs := egorMeta .Inputs
62
62
for i := 0 ; i < len (inputs ); i ++ {
63
63
file , err := CreateFile (inputs [i ].Path )
64
64
if err != nil {
65
- return err
65
+ return "" , err
66
66
}
67
67
_ , err = file .WriteString (task .Tests [i ].Input )
68
68
if err != nil {
69
- return err
69
+ return "" , err
70
70
}
71
71
}
72
72
73
73
outputs := egorMeta .Outputs
74
74
for i := 0 ; i < len (outputs ); i ++ {
75
75
file , err := CreateFile (outputs [i ].Path )
76
76
if err != nil {
77
- return err
77
+ return "" , err
78
78
}
79
79
_ , err = file .WriteString (task .Tests [i ].Output )
80
80
if err != nil {
81
- return err
81
+ return "" , err
82
82
}
83
83
}
84
84
templateContent , err := templates .ResolveTemplateByLanguage (config .Lang .Default )
85
85
if err != nil {
86
- return err
86
+ return "" , err
87
87
}
88
88
template := template2 .New ("Solution template" )
89
89
compiledTemplate , err := template .Parse (templateContent )
90
90
if err != nil {
91
- return err
91
+ return "" , err
92
92
}
93
93
taskFile , err := CreateFile (egorMeta .TaskFile )
94
94
if err != nil {
95
- return err
95
+ return "" , err
96
96
}
97
97
if err = compiledTemplate .Execute (taskFile , config ); err != nil {
98
- return err
98
+ return "" , err
99
99
}
100
- return nil
100
+ return taskDir , nil
101
101
}
102
102
103
103
// Given the json string returned by competitive companion
@@ -172,10 +172,12 @@ func ParseAction(context *cli.Context) error {
172
172
if err != nil {
173
173
return err
174
174
}
175
- err = CreateDirectoryStructure (* task , * config , cwd )
175
+ taskDir , err : = CreateDirectoryStructure (* task , * config , cwd )
176
176
if err != nil {
177
177
color .Red ("Error happened %v" , err )
178
+ return err
178
179
}
180
+ color .Green ("Created task directory in : %s\n " , taskDir )
179
181
return nil
180
182
}
181
183
@@ -190,4 +192,11 @@ var ParseCommand = cli.Command{
190
192
Usage : "Parse a task using 'Competitive Companion'" ,
191
193
UsageText : "parse task from navigator" ,
192
194
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
+ //},
193
202
}
0 commit comments