diff --git a/openless-all/app/package.json b/openless-all/app/package.json index 70d83121..c08eacba 100644 --- a/openless-all/app/package.json +++ b/openless-all/app/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "vite", "build": "tsc && vite build", - "prebuild": "mkdir -p src-tauri/linux-fcitx5-plugin && for f in libopenless.so openless.conf; do [ -f ../scripts/linux-fcitx5-plugin/build_release/$f ] && cp ../scripts/linux-fcitx5-plugin/build_release/$f src-tauri/linux-fcitx5-plugin/; done; true", + "prebuild": "node scripts/copy-plugin.mjs", "preview": "vite preview", "tauri": "tauri", "check:hotkey-injection": "node scripts/check-hotkey-injection.mjs" diff --git a/openless-all/app/scripts/copy-plugin.mjs b/openless-all/app/scripts/copy-plugin.mjs new file mode 100644 index 00000000..ca1dd612 --- /dev/null +++ b/openless-all/app/scripts/copy-plugin.mjs @@ -0,0 +1,27 @@ +import { copyFileSync, mkdirSync } from 'fs'; +import { join, dirname } from 'path'; +import { fileURLToPath } from 'url'; +import { platform } from 'os'; + +// Only relevant on Linux — skip silently on other platforms +if (platform() !== 'linux') { + process.exit(0); +} + +const __dirname = dirname(fileURLToPath(import.meta.url)); +const srcDir = join(__dirname, '..', 'scripts', 'linux-fcitx5-plugin', 'build_release'); +const destDir = join(__dirname, 'src-tauri', 'linux-fcitx5-plugin'); + +const files = ['libopenless.so', 'openless.conf']; + +for (const f of files) { + const src = join(srcDir, f); + const dest = join(destDir, f); + try { + mkdirSync(destDir, { recursive: true }); + copyFileSync(src, dest); + console.log(`[copy:linux-plugin] copied ${f}`); + } catch { + console.log(`[copy:linux-plugin] ${f} not found — skipping`); + } +}