summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShulhan <ms@kilabit.info>2022-02-14 22:03:27 +0700
committerShulhan <ms@kilabit.info>2022-02-14 22:03:44 +0700
commita702bcf35fad7171bb21bcdca82e152647d520ab (patch)
tree5e6ef94b8b7e22eca4d1b4c5a5e6066d012d2bf5
parenta4f9a21c6e85dab949ed61d2cd88a2f9377acbe6 (diff)
downloadpakakeh.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.go2
-rw-r--r--lib/memfs/embed_options.go6
-rw-r--r--lib/memfs/embed_test.go4
-rw-r--r--lib/memfs/internal/test/embed/embed_test.go2
-rw-r--r--lib/memfs/template.go3
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"