Skip to content

Commit d05e4be

Browse files
committed
Enable to set template file
1 parent 4772e51 commit d05e4be

File tree

3 files changed

+17
-6
lines changed

3 files changed

+17
-6
lines changed

cmd/prepare.go

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ var prepareCmd = &cobra.Command{
1919
username := viper.GetString("username")
2020
password := viper.GetString("password")
2121
language := viper.GetString("language")
22+
templatePath := viper.GetString("template")
2223

2324
contestId := args[0]
2425

@@ -27,8 +28,6 @@ var prepareCmd = &cobra.Command{
2728
return fmt.Errorf("invalid language")
2829
}
2930

30-
fmt.Printf("Using template of %s\n", language)
31-
3231
ac, err := atcoder.NewAtCoder()
3332
if err != nil {
3433
return err
@@ -51,12 +50,15 @@ var prepareCmd = &cobra.Command{
5150
selector = environment.DefaultEnvironmentSelector
5251
}
5352

54-
return preparer.Prepare(contest, ".", selector.Select(language))
53+
return preparer.Prepare(contest, ".", selector.Select(language), templatePath)
5554
},
5655
}
5756

5857
func init() {
5958
rootCmd.AddCommand(prepareCmd)
6059
prepareCmd.Flags().StringP("language", "l", "", "language")
6160
viper.BindPFlag("language", prepareCmd.Flags().Lookup("language"))
61+
62+
prepareCmd.Flags().StringP("template", "t", "", "template file path")
63+
viper.BindPFlag("template", prepareCmd.Flags().Lookup("template"))
6264
}

lib/preparer/prepare.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,17 @@ func prepareTemplate(p string) (*template.Template, error) {
6565
return template.New("src").Parse(string(all))
6666
}
6767

68-
func Prepare(contest *atcoder.Contest, dir string, env *environment.Environment) error {
69-
template, err := prepareTemplate(env.Template)
68+
func Prepare(contest *atcoder.Contest, dir string, env *environment.Environment, specifiedTemplatePath string) error {
69+
var templatePath string
70+
if specifiedTemplatePath == "" {
71+
fmt.Printf("Using template of %s\n", env.Language)
72+
templatePath = env.Template
73+
} else {
74+
fmt.Printf("Using local template: %s\n", specifiedTemplatePath)
75+
templatePath = specifiedTemplatePath
76+
}
77+
78+
template, err := prepareTemplate(templatePath)
7079
if err != nil {
7180
return err
7281
}

statik/statik.go

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)