5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-06 18:59:09 +08:00
wails/v3/internal/commands/generate_webview2.go
Lea Anthony 7aa6abfefe
Documentation updates.
New `-git` flag for `wails3 init`.
New `wails3 generate webview2bootstrapper` command.
2024-12-16 20:00:56 +11:00

41 lines
1.0 KiB
Go

package commands
import (
_ "embed"
"fmt"
"os"
"path/filepath"
"github.com/pterm/pterm"
)
//go:embed webview2/MicrosoftEdgeWebview2Setup.exe
var webview2Bootstrapper []byte
type GenerateWebView2Options struct {
Directory string `json:"directory"`
}
func GenerateWebView2Bootstrapper(options *GenerateWebView2Options) error {
// If the file already exists, exit early
if _, err := os.Stat(filepath.Join(options.Directory, "MicrosoftEdgeWebview2Setup.exe")); err == nil {
return nil
}
// Create target directory if it doesn't exist
err := os.MkdirAll(options.Directory, 0755)
if err != nil {
return fmt.Errorf("failed to create target directory: %w", err)
}
// Write to target directory
targetPath := filepath.Join(options.Directory, "MicrosoftEdgeWebview2Setup.exe")
err = os.WriteFile(targetPath, webview2Bootstrapper, 0644)
if err != nil {
return fmt.Errorf("failed to write WebView2 bootstrapper: %w", err)
}
pterm.Success.Printf("Generated WebView2 bootstrapper at: %s\n", targetPath)
return nil
}