diff --git a/cmd/swag/main.go b/cmd/swag/main.go index e7f2aa09d..1b325865e 100644 --- a/cmd/swag/main.go +++ b/cmd/swag/main.go @@ -35,6 +35,7 @@ const ( quietFlag = "quiet" tagsFlag = "tags" parseExtensionFlag = "parseExtension" + packageName = "packageName" collectionFormatFlag = "collectionFormat" ) @@ -142,6 +143,11 @@ var initFlags = []cli.Flag{ Value: "", Usage: "A comma-separated list of tags to filter the APIs for which the documentation is generated.Special case if the tag is prefixed with the '!' character then the APIs with that tag will be excluded", }, + &cli.StringFlag{ + Name: packageName, + Value: "", + Usage: "A package name of docs.go, using output directory name by default (check `--output` option)", + }, &cli.StringFlag{ Name: collectionFormatFlag, Aliases: []string{"cf"}, @@ -193,6 +199,7 @@ func initAction(ctx *cli.Context) error { OverridesFile: ctx.String(overridesFileFlag), ParseGoList: ctx.Bool(parseGoListFlag), Tags: ctx.String(tagsFlag), + PackageName: ctx.String(packageName), Debugger: logger, CollectionFormat: collectionFormat, }) diff --git a/gen/gen.go b/gen/gen.go index b0b520c12..ed52ac12d 100644 --- a/gen/gen.go +++ b/gen/gen.go @@ -127,6 +127,9 @@ type Config struct { // include only tags mentioned when searching, comma separated Tags string + // PackageName defines package name of generated `docs.go` + PackageName string + // CollectionFormat set default collection format CollectionFormat string } @@ -225,7 +228,13 @@ func (g *Gen) writeDocSwagger(config *Config, swagger *spec.Swagger) error { return err } - packageName := filepath.Base(absOutputDir) + var packageName string + if len(config.PackageName) > 0 { + packageName = config.PackageName + } else { + packageName = filepath.Base(absOutputDir) + packageName = strings.ReplaceAll(packageName, "-", "_") + } docs, err := os.Create(docFileName) if err != nil {