diff --git a/.gitignore b/.gitignore index 11b7250..dfbe66a 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,7 @@ # Binaries /changelog -/changelog.exe \ No newline at end of file +/changelog.exe + +# Go +/vendor/ diff --git a/README.md b/README.md index cc94d7c..1e9ad83 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,5 @@ # Changelog + A changelog generator for Gitea [![Build Status](https://drone.gitea.com/api/badges/gitea/changelog/status.svg)](https://drone.gitea.com/gitea/changelog) @@ -19,18 +20,21 @@ See the [changelog.example.yml](config/changelog.example.yml) example file. ## Usage -#### Changelog Entries -``` -changelog -m=1.11.0 -c=/path/to/my_config_file generate +### Changelog Entries + +```sh +changelog generate -m=1.11.0 -c=/path/to/my_config_file ``` -#### Contributors List -``` -changelog -m=1.11.0 -c=/path/to/my_config_file contributors +### Contributors List + +```sh +changelog contributors -m=1.11.0 -c=/path/to/my_config_file ``` ## Building -``` + +```sh go build ``` diff --git a/cmd/cmd.go b/cmd/cmd.go index 25284c8..77e869b 100644 --- a/cmd/cmd.go +++ b/cmd/cmd.go @@ -80,6 +80,7 @@ func New() *cli.App { Init, }, } + copyGlobalFlags(app) return app } @@ -95,3 +96,28 @@ func getDefaultConfigFile() string { } return "" } + +func copyGlobalFlags(app *cli.App) { + for _, command := range app.Commands { + originalFlagNames := make([]string, 0, len(command.Flags)) + for _, flag := range command.Flags { + originalFlagNames = append(originalFlagNames, flag.Names()...) + } + + for _, flag := range app.Flags { + found := false + flagNameLoop: + for _, name := range flag.Names() { + for _, originalName := range originalFlagNames { + if name == originalName { + found = true + break flagNameLoop + } + } + } + if !found { + command.Flags = append(command.Flags, flag) + } + } + } +}