1
0

feat!: embed templates in final binary

This commit is contained in:
Wiktor Zykubek 2024-12-27 06:12:12 +01:00
parent 75678eda37
commit e415f8bcae
Signed by: wzykubek
GPG Key ID: 2221881F957D89B9

13
main.go
View File

@ -1,9 +1,11 @@
package main
import (
"embed"
"errors"
"flag"
"fmt"
"io/fs"
"os"
"os/exec"
"strings"
@ -17,6 +19,9 @@ type LicensingData struct {
Year int
}
//go:embed all:templates
var Templates embed.FS
var GitConfigError = errors.New("Can't read Git config")
var NotSupportedError = errors.New("Not supported license")
@ -36,11 +41,7 @@ func getGitUserData() (string, string, error) {
}
func getTemplateList() []string {
d, err := os.Open("templates")
if err != nil {
panic(err)
}
files, err := d.Readdir(0)
files, err := fs.ReadDir(Templates, "templates")
if err != nil {
panic(err)
}
@ -60,7 +61,7 @@ func listTemplates() {
func genLicense(lcnsName string, lcnsData LicensingData, outFileName string) error {
tmplFile := "templates/" + lcnsName + ".tmpl"
tmpl, err := template.ParseFiles(tmplFile)
tmpl, err := template.ParseFS(Templates, tmplFile)
if err != nil {
return NotSupportedError
}