5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-06 19:11:14 +08:00
wails/v3/internal/service/service.go
Atterpac e316cd0719
[V3] Plugins implemenations (#3570)
* plugin handler and lifecycle

* rebase

* remove reflect

s

* remove Config and NewPlugin from plugin template

* Remove plugin manager, generation of plugin interface

* implement http handlers for services

remove log

trim path

prefix wails/services

* update plugine example

* Misc updates

* Ported plugins to services, rewritten example

* Added fileserver

* Update OnStartup and use a context for the application

* Rename PathPrefix to Route. Create docs.

* Use service config copy. Add Name to Service Options. Improve service generation.

* Use service config copy. Add Name to Service Options. Improve service generation. Update README

* Remove rogue db

* Update changelog.md

---------

Co-authored-by: Lea O'Anthony <lea.anthony@gmail.com>
2024-09-01 17:26:22 +10:00

37 lines
695 B
Go

package service
import (
"embed"
"fmt"
"io/fs"
"os"
"path/filepath"
"github.com/wailsapp/wails/v3/internal/flags"
"github.com/leaanthony/gosod"
"github.com/samber/lo"
)
//go:embed template
var serviceTemplate embed.FS
type TemplateOptions struct {
*flags.ServiceInit
}
func Install(options *flags.ServiceInit) error {
if options.OutputDir == "." || options.OutputDir == "" {
options.OutputDir = filepath.Join(lo.Must(os.Getwd()), options.Name)
}
fmt.Printf("Generating service '%s' into '%s'\n", options.Name, options.OutputDir)
tfs, err := fs.Sub(serviceTemplate, "template")
if err != nil {
return err
}
return gosod.New(tfs).Extract(options.OutputDir, options)
}