diff options
| author | Shulhan <ms@kilabit.info> | 2022-02-14 22:03:27 +0700 |
|---|---|---|
| committer | Shulhan <ms@kilabit.info> | 2022-02-14 22:03:44 +0700 |
| commit | a702bcf35fad7171bb21bcdca82e152647d520ab (patch) | |
| tree | 5e6ef94b8b7e22eca4d1b4c5a5e6066d012d2bf5 | |
| parent | a4f9a21c6e85dab949ed61d2cd88a2f9377acbe6 (diff) | |
| download | pakakeh.go-a702bcf35fad7171bb21bcdca82e152647d520ab.tar.xz | |
lib/memfs: add option CommentHeader to EmbedOptions
The CommentHeader option allow user to define custom header to the Go
generated file.
The string value is not checked, whether it's a comment or not, it
will rendered as is.
| -rw-r--r-- | lib/memfs/embed.go | 2 | ||||
| -rw-r--r-- | lib/memfs/embed_options.go | 6 | ||||
| -rw-r--r-- | lib/memfs/embed_test.go | 4 | ||||
| -rw-r--r-- | lib/memfs/internal/test/embed/embed_test.go | 2 | ||||
| -rw-r--r-- | lib/memfs/template.go | 3 |
5 files changed, 15 insertions, 2 deletions
diff --git a/lib/memfs/embed.go b/lib/memfs/embed.go index 6712fdad..9e16f6ef 100644 --- a/lib/memfs/embed.go +++ b/lib/memfs/embed.go @@ -54,7 +54,7 @@ func (mfs *MemFS) GoEmbed() (err error) { names := mfs.ListNames() - err = tmpl.ExecuteTemplate(f, templateNameHeader, mfs.Opts.Embed.PackageName) + err = tmpl.ExecuteTemplate(f, templateNameHeader, mfs.Opts.Embed) if err != nil { goto fail } diff --git a/lib/memfs/embed_options.go b/lib/memfs/embed_options.go index b1522276..4462b82c 100644 --- a/lib/memfs/embed_options.go +++ b/lib/memfs/embed_options.go @@ -6,6 +6,12 @@ package memfs // EmbedOptions define an options for GoEmbed. type EmbedOptions struct { + // CommentHeader define optional comment to be added to the header of + // generated file, for example copyright holder and/or license. + // The string value is not checked, whether it's a comment or not, it + // will rendered as is. + CommentHeader string + // The generated package name for GoEmbed(). // If its not defined it will be default to "main". PackageName string diff --git a/lib/memfs/embed_test.go b/lib/memfs/embed_test.go index 9a9eaa5d..99a7e8f6 100644 --- a/lib/memfs/embed_test.go +++ b/lib/memfs/embed_test.go @@ -14,10 +14,14 @@ func TestMemFS_GoEmbed(t *testing.T) { ".*/node_save$", }, Embed: EmbedOptions{ + CommentHeader: `// SPDX-FileCopyrightText: 2022 Shulhan <ms@kilabit.info> +// SPDX-License-Identifier: AGPL-3.0-or-later +`, PackageName: "embed", GoFileName: "./internal/test/embed/embed_test.go", }, } + mfs, err := New(opts) if err != nil { t.Fatal(err) diff --git a/lib/memfs/internal/test/embed/embed_test.go b/lib/memfs/internal/test/embed/embed_test.go index 329ff042..b7225081 100644 --- a/lib/memfs/internal/test/embed/embed_test.go +++ b/lib/memfs/internal/test/embed/embed_test.go @@ -1,3 +1,5 @@ +// SPDX-FileCopyrightText: 2022 Shulhan <ms@kilabit.info> +// SPDX-License-Identifier: AGPL-3.0-or-later // Code generated by github.com/shuLhan/share/lib/memfs DO NOT EDIT. package embed diff --git a/lib/memfs/template.go b/lib/memfs/template.go index 1586edf6..ba9c7e78 100644 --- a/lib/memfs/template.go +++ b/lib/memfs/template.go @@ -40,9 +40,10 @@ const ( // func generateTemplate() (tmpl *template.Template, err error) { var textTemplate = `{{ define "HEADER" -}} +{{- .CommentHeader -}} // Code generated by github.com/shuLhan/share/lib/memfs DO NOT EDIT. -package {{.}} +package {{.PackageName}} import ( "github.com/shuLhan/share/lib/memfs" |
