fix:powershell auto select

This commit is contained in:
xkeyC 2024-03-23 17:53:42 +08:00
parent 3c174dcb49
commit 5e67211685
4 changed files with 25 additions and 14 deletions

View File

@ -120,6 +120,11 @@ class AppGlobalModel extends _$AppGlobalModel {
applicationBinaryModuleDir: applicationBinaryModuleDir,
);
// init Rust bridge
await RustLib.init();
await RSHttp.init();
dPrint("---- rust bridge init -----");
// init Hive
try {
Hive.init("$applicationSupportDir/db");
@ -144,13 +149,13 @@ class AppGlobalModel extends _$AppGlobalModel {
exit(1);
}
// init Rust bridge
await RustLib.init();
await RSHttp.init();
dPrint("---- rust bridge inited -----");
// init powershell
await SystemHelper.initPowershellPath();
try {
await SystemHelper.initPowershellPath();
dPrint("---- Powershell init -----");
}catch (e){
dPrint("powershell init failed : $e");
}
// get windows info
WindowsDeviceInfo? windowsDeviceInfo;
@ -177,6 +182,7 @@ class AppGlobalModel extends _$AppGlobalModel {
}
});
dPrint("---- Window init -----");
_initialized = true;
ref.keepAlive();
}

View File

@ -7,9 +7,13 @@ class SystemHelper {
static String powershellPath = "powershell.exe";
static initPowershellPath() async {
var result = await Process.run(powershellPath, ["echo", "ping"]);
if (!result.stdout.toString().startsWith("ping") &&
powershellPath == "powershell.exe") {
try {
var result = await Process.run(powershellPath, ["echo", "ping"]);
if (!result.stdout.toString().startsWith("ping") &&
powershellPath == "powershell.exe") {
throw "powershell check failed";
}
} catch (e) {
Map<String, String> envVars = Platform.environment;
final systemRoot = envVars["SYSTEMROOT"];
if (systemRoot != null) {
@ -17,7 +21,6 @@ class SystemHelper {
"$systemRoot\\System32\\WindowsPowerShell\\v1.0\\powershell.exe";
dPrint("auto search powershell path === $autoSearchPath");
powershellPath = autoSearchPath;
initPowershellPath();
}
}
}

View File

@ -12,11 +12,11 @@ void dPrint(src) async {
if (kDebugMode) {
print(src);
}
try {
await _logLock.synchronized(() async {
await _logLock.synchronized(() async {
try {
_logFile?.writeAsString("$src\n", mode: FileMode.append);
});
} catch (_) {}
} catch (_) {}
});
}
void setDPrintFile(File file) {

View File

@ -69,8 +69,10 @@ class SplashUI extends HookConsumerWidget {
}
stepState.value = 1;
if (!context.mounted) return;
dPrint("_initApp checkUpdate");
await appModel.checkUpdate(context);
stepState.value = 2;
dPrint("_initApp aria2cModelProvider");
ref.read(aria2cModelProvider);
if (!context.mounted) return;
context.go("/index");