mirror of
https://github.com/taigrr/wtf
synced 2026-03-26 16:42:19 -07:00
WTF-748 Fixes and improves module templating (#786)
Fixes and improves the module templating for creating new bare-bones
text widgets.
This command:
WTF_WIDGET_NAME=MyNewWidget go generate -run=text
now properly generates:
* the module directory in the /modules directory
* the widget.go file
* the settings.go file
with no linter warnings or errors.
Signed-off-by: Chris Cummer <chriscummer@me.com>
This commit is contained in:
@@ -36,17 +36,29 @@ func main() {
|
||||
widgetName,
|
||||
}
|
||||
|
||||
tpl, _ := template.New("textwidget.tpl").Funcs(template.FuncMap{
|
||||
"Lower": strings.ToLower,
|
||||
"Title": strings.Title,
|
||||
}).ParseFiles("generator/textwidget.tpl")
|
||||
createModuleDirectory(data)
|
||||
|
||||
err := os.Mkdir(strings.ToLower(widgetName), os.ModePerm)
|
||||
generateWidgetFile(data)
|
||||
generateSettingsFile(data)
|
||||
|
||||
fmt.Println("Done")
|
||||
}
|
||||
|
||||
/* -------------------- Unexported Functions -------------------- */
|
||||
|
||||
func createModuleDirectory(data struct { Name string }) {
|
||||
err := os.MkdirAll(strings.ToLower(fmt.Sprintf("modules/%s", data.Name)), os.ModePerm)
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
out, err := os.Create(fmt.Sprintf("%s/widget.go", strings.ToLower(widgetName)))
|
||||
func generateWidgetFile(data struct { Name string }) {
|
||||
tpl, _ := template.New("textwidget.tpl").Funcs(template.FuncMap{
|
||||
"Lower": strings.ToLower,
|
||||
}).ParseFiles("generator/textwidget.tpl")
|
||||
|
||||
out, err := os.Create(fmt.Sprintf("modules/%s/widget.go", strings.ToLower(data.Name)))
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
}
|
||||
@@ -54,3 +66,17 @@ func main() {
|
||||
|
||||
tpl.Execute(out, data)
|
||||
}
|
||||
|
||||
func generateSettingsFile(data struct { Name string }) {
|
||||
tpl, _ := template.New("settings.tpl").Funcs(template.FuncMap{
|
||||
"Lower": strings.ToLower,
|
||||
}).ParseFiles("generator/settings.tpl")
|
||||
|
||||
out, err := os.Create(fmt.Sprintf("modules/%s/settings.go", strings.ToLower(data.Name)))
|
||||
if err != nil {
|
||||
fmt.Println(err.Error())
|
||||
}
|
||||
defer out.Close()
|
||||
|
||||
tpl.Execute(out, data)
|
||||
}
|
||||
Reference in New Issue
Block a user