diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 138a3a2..1fe02dc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -59,6 +59,7 @@ jobs: libwebkit2gtk-4.1-dev \ libappindicator3-dev \ librsvg2-dev \ + appstream \ curl \ patchelf \ libdbus-1-dev \ diff --git a/package-lock.json b/package-lock.json index 1ff5f5e..4b67a47 100644 --- a/package-lock.json +++ b/package-lock.json @@ -24,7 +24,7 @@ "zustand": "^5.0.14" }, "devDependencies": { - "@tauri-apps/cli": "^2.11.3", + "@tauri-apps/cli": "^2.11.4", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", "@vitejs/plugin-react": "^6.0.3", diff --git a/package.json b/package.json index c0a2d3e..1dcc9a3 100644 --- a/package.json +++ b/package.json @@ -51,7 +51,7 @@ "zustand": "^5.0.14" }, "devDependencies": { - "@tauri-apps/cli": "^2.11.3", + "@tauri-apps/cli": "^2.11.4", "@types/react": "^19.1.8", "@types/react-dom": "^19.1.6", "@vitejs/plugin-react": "^6.0.3", diff --git a/scripts/before-tauri-build.js b/scripts/before-tauri-build.js index 86a64bd..57d7929 100755 --- a/scripts/before-tauri-build.js +++ b/scripts/before-tauri-build.js @@ -7,11 +7,12 @@ import { fileURLToPath } from 'node:url'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const repoRoot = path.resolve(__dirname, '..'); -function run(command, args) { +function run(command, args, options = {}) { const executable = process.platform === 'win32' && command === 'npm' ? 'npm.cmd' : command; const result = spawnSync(executable, args, { cwd: repoRoot, stdio: 'inherit', + ...options, }); if (result.error) { @@ -24,6 +25,22 @@ function run(command, args) { } } +function runNpmScript(script) { + if (process.env.npm_execpath) { + run(process.execPath, [process.env.npm_execpath, 'run', script]); + return; + } + + if (process.platform === 'win32') { + run('cmd.exe', ['/d', '/s', '/c', 'npm', 'run', script], { + windowsHide: true, + }); + return; + } + + run('npm', ['run', script]); +} + run(process.execPath, ['scripts/stage-engines.js']); run(process.execPath, ['scripts/verify-binaries.js', '--staged']); @@ -34,4 +51,4 @@ if (process.env.FIRELINK_OMIT_ENGINE_DIST_FOR_TAURI_BUNDLE === '1') { console.log('Omitted engine-dist from the initial Tauri bundle; release packaging will repack verified engines.'); } -run(process.platform === 'win32' ? 'npm.cmd' : 'npm', ['run', 'build']); +runNpmScript('build'); diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index e359cc4..02ae434 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -1018,7 +1018,7 @@ dependencies = [ "libc", "option-ext", "redox_users", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -1232,7 +1232,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -2026,7 +2026,7 @@ dependencies = [ "js-sys", "log 0.4.33", "wasm-bindgen", - "windows-core 0.61.2", + "windows-core 0.56.0", ] [[package]] @@ -3081,7 +3081,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7d8fae84b431384b68627d0f9b3b1245fcf9f46f6c0e3dc902e9dce64edd1967" dependencies = [ "libc", - "windows-sys 0.45.0", + "windows-sys 0.52.0", ] [[package]] @@ -3473,7 +3473,7 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -3887,7 +3887,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -4635,9 +4635,9 @@ checksum = "61c41af27dd6d1e27b1b16b489db798443478cef1f06a660c96db617ba5de3b1" [[package]] name = "tauri" -version = "2.11.2" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "437404997acf375d85f1177afa7e11bb971f274ed6a7b83a2a3e339015f4cc28" +checksum = "766b7bd007abce1210b89d3b9cb36c09d0e4b258f52a77e1ca0874e86efae338" dependencies = [ "anyhow", "bytes", @@ -4676,6 +4676,7 @@ dependencies = [ "tauri-runtime-wry", "tauri-utils", "thiserror 2.0.18", + "time", "tokio", "tray-icon", "url", @@ -4687,9 +4688,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.6.2" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4aa1f9055fc23919a54e4e125052bed16ed04aef0487086e758fe01a67b451c7" +checksum = "bc9ce40b16101cb6ea63d3e221567affd1c3a9205f95d7bc574941a10636b632" dependencies = [ "anyhow", "cargo_toml", @@ -4708,9 +4709,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.6.2" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4a0319528a025a38c4078e7dae2c446f4e63620ddb0659a643ede1cb38f90e9" +checksum = "08279169ff42f8fc45a1dbc9dcae888893ba95288142e5880c59b93a26d2cfc5" dependencies = [ "base64 0.22.1", "brotli", @@ -4735,9 +4736,9 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.6.2" +version = "2.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae6cb4e3896c21d2f6da5b31251d2faea0153bba56ed0e970f918115dbee4924" +checksum = "e8b394794f399a421811d06966343e7933fcae92d59f5180b9388d1174497a45" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -4928,9 +4929,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.11.2" +version = "2.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "48222d7116c8807eaa6fe2f372e023fae125084e61e6eca6d70b7961cdf129ef" +checksum = "b0b4bc95aed361b0019067d189a1174a603d460d0f6c72606512d59fc9c12ec8" dependencies = [ "cookie", "dpi", @@ -4953,9 +4954,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.11.2" +version = "2.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b83849ee63ecb27a8e8d0fe51915ca215076914aca43f96db1179f0f415f6cd9" +checksum = "4e6fac707727b7a2f48e4ded90976324267371073edbb415ffb73bb0458d203f" dependencies = [ "gtk", "http", @@ -4979,9 +4980,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.9.2" +version = "2.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "092379df9a707631978e6c56b1bc2401d387f01e2d4a3c123360d167bbb9aa95" +checksum = "3e176a18e67764923c4f1ce66f25ae4abe5f688384d5eb1a0fa6c77f3d90f887" dependencies = [ "anyhow", "brotli", @@ -5045,10 +5046,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.3.4", + "getrandom 0.4.3", "once_cell", "rustix", - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] @@ -5465,9 +5466,9 @@ dependencies = [ [[package]] name = "tray-icon" -version = "0.23.1" +version = "0.24.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15edbb0d80583e85ee8df283410038e17314df5cba30da2087a54a85216c0773" +checksum = "65ba1e5f6b9ef9fd87e21b9c6f351554dbd717960089168fcfdef854686961dc" dependencies = [ "crossbeam-channel", "dirs", @@ -5987,7 +5988,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.59.0", + "windows-sys 0.52.0", ] [[package]] diff --git a/src-tauri/linux/Firelink.appdata.xml b/src-tauri/linux/Firelink.appdata.xml new file mode 100644 index 0000000..042a8b8 --- /dev/null +++ b/src-tauri/linux/Firelink.appdata.xml @@ -0,0 +1,20 @@ + + + com.nimbold.firelink + CC0-1.0 + MIT + Firelink + Desktop download manager powered by aria2, yt-dlp, FFmpeg, and Deno + +

+ Firelink is a desktop download manager for direct file downloads and media + downloads, with bundled engines and browser-extension handoff support. +

+
+ Firelink.desktop + + firelink + + https://github.com/nimbold/Firelink + +
diff --git a/src-tauri/tauri.linux.conf.json b/src-tauri/tauri.linux.conf.json index b5344f3..54d7239 100644 --- a/src-tauri/tauri.linux.conf.json +++ b/src-tauri/tauri.linux.conf.json @@ -13,6 +13,13 @@ ] }, "bundle": { - "targets": ["appimage"] + "targets": ["appimage"], + "linux": { + "appimage": { + "files": { + "linux/Firelink.appdata.xml": "usr/share/metainfo/Firelink.appdata.xml" + } + } + } } }