in cmd/render.go [27:73]
func RenderCmd(fs afero.Fs) *cobra.Command {
renderCmd := &cobra.Command{
Use: "render",
Short: "Render a changelog in an asciidoc file",
Long: RenderLongDescription,
Args: func(cmd *cobra.Command, args []string) error {
return nil
},
RunE: func(cmd *cobra.Command, args []string) error {
dest := viper.GetString("changelog_destination")
renderedDest := viper.GetString("rendered_changelog_destination")
version, err := cmd.Flags().GetString("version")
if err != nil {
return fmt.Errorf("error parsing flag 'version': %w", err)
}
template, err := cmd.Flags().GetString("template")
if err != nil {
return fmt.Errorf("error parsing flag 'template': %w", err)
}
c, err := changelog.FromFile(fs, fmt.Sprintf("./%s/%s.yaml", dest, version))
if err != nil {
return fmt.Errorf("error loading changelog from file: %w", err)
}
r := changelog.NewRenderer(fs, c, renderedDest, template)
if err := r.Render(); err != nil {
return fmt.Errorf("cannot build asciidoc file: %w", err)
}
return nil
},
}
renderCmd.Flags().String("template", viper.GetString("template"), "The template used to generate the changelog")
renderCmd.Flags().String("version", "", "The version of the consolidated changelog being created")
err := renderCmd.MarkFlagRequired("version")
if err != nil {
// NOTE: the only case this error appear is when the flag is not defined
log.Fatal(err)
}
return renderCmd
}