fix: Microsoft Windows

This commit is contained in:
2025-02-27 01:47:01 +00:00
parent 947b384511
commit 3d96d89846
5 changed files with 30 additions and 9 deletions

BIN
bun.lockb

Binary file not shown.

View File

@ -2,6 +2,7 @@ use log;
use std::collections::HashMap;
use std::path::PathBuf;
use tokio::sync::Mutex;
use tokio::fs;
use crate::pkg::{Package, PkgKey};
use crate::pkg_store::InstallResult;
@ -140,9 +141,25 @@ pub async fn init_profile(
new_profile.save().await;
appd.profile = Some(new_profile.clone());
fs::create_dir(new_profile.dir()).await
.map_err(|e| format!("Unable to create profile directory: {}", e))?;
Ok(new_profile)
}
#[tauri::command]
pub async fn profile_dir(
state: State<'_, Mutex<AppData>>
) -> Result<PathBuf, &str> {
let appd = state.lock().await;
if let Some(p) = &appd.profile {
Ok(p.dir())
} else {
Err("No profile loaded")
}
}
#[tauri::command]
pub async fn set_cfg(
state: State<'_, Mutex<AppData>>,

View File

@ -106,6 +106,7 @@ pub async fn run(_args: Vec<String>) {
cmd::get_current_profile,
cmd::init_profile,
cmd::save_profile,
cmd::profile_dir,
cmd::startline,
cmd::kill,
cmd::set_cfg,

View File

@ -7,7 +7,7 @@ use crate::profile::Profile;
use crate::util;
#[cfg(target_os = "windows")]
static CREATE_NO_WINDOW: i32 = 0x08000000;
static CREATE_NO_WINDOW: u32 = 0x08000000;
pub fn start(p: &Profile, app: AppHandle) -> Result<()> {
use tokio::task::JoinSet;

View File

@ -5,8 +5,9 @@ import InputNumber from 'primevue/inputnumber';
import InputText from 'primevue/inputtext';
import RadioButton from 'primevue/radiobutton';
import Toggle from 'primevue/toggleswitch';
import { invoke } from '@tauri-apps/api/core';
import * as path from '@tauri-apps/api/path';
import { readTextFile, writeTextFile } from '@tauri-apps/plugin-fs';
import { mkdir, readTextFile, writeTextFile } from '@tauri-apps/plugin-fs';
import { usePkgStore } from '../stores';
const store = usePkgStore();
@ -28,18 +29,19 @@ const cfgAime = _cfg('aime', false);
const aimeCode = ref('');
// temp
let profilePath = '';
let aimePath = '';
(async () => {
aimePath = await path.join(
await path.dataDir(),
'startliner/profile-ongeki-default/aime.txt'
);
aimeCode.value = await readTextFile(aimePath);
profilePath = await invoke('profile_dir');
try {
aimePath = await path.join(profilePath, 'aime.txt');
aimeCode.value = await readTextFile(aimePath);
} catch (_) {
aimeCode.value = '';
}
})();
path.homeDir().then(console.log);
const aimeCodeModel = computed({
get() {
return aimeCode.value;
@ -47,6 +49,7 @@ const aimeCodeModel = computed({
async set(value: string) {
aimeCode.value = value;
if (value.match(/^[0-9]{20}$/)) {
await mkdir(profilePath);
await writeTextFile(aimePath, aimeCode.value);
}
},