From db6d2aaaf04b858a02c2c5dfd285bcda164d531c Mon Sep 17 00:00:00 2001 From: Miniontoby Date: Mon, 11 Nov 2024 10:54:10 +0100 Subject: [PATCH] Support 5.10.0 with the new Luanti name! --- package-lock.json | 49 +++++++++-------------------------------- package.json | 1 + src/lib/api/download.js | 7 ++++-- src/lib/api/versions.js | 2 +- src/lib/shell.js | 7 ++++-- 5 files changed, 23 insertions(+), 43 deletions(-) diff --git a/package-lock.json b/package-lock.json index 06e2946..6d049e8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,18 +1,19 @@ { "name": "tauri-sveltekit", - "version": "0.0.4", + "version": "0.0.5", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "tauri-sveltekit", - "version": "0.0.4", + "version": "0.0.5", "hasInstallScript": true, "dependencies": { "@tauri-apps/api": "^1.0.2", "crypto-js": "^4.1.1", "jszip": "^3.10.1", "patch-package": "^6.4.7", + "semver": "^7.6.3", "svelte-markdown": "^0.2.3", "tauri-plugin-fs-watch-api": "github:tauri-apps/tauri-plugin-fs-watch" }, @@ -1892,18 +1893,6 @@ "node": ">=10" } }, - "node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, "node_modules/magic-string": { "version": "0.26.3", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.3.tgz", @@ -2714,13 +2703,10 @@ } }, "node_modules/semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "license": "ISC", "bin": { "semver": "bin/semver.js" }, @@ -4984,15 +4970,6 @@ "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", "dev": true }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, "magic-string": { "version": "0.26.3", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.3.tgz", @@ -5520,13 +5497,9 @@ } }, "semver": { - "version": "7.3.7", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", - "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==" }, "set-blocking": { "version": "2.0.0", @@ -5771,7 +5744,7 @@ }, "tauri-plugin-fs-watch-api": { "version": "git+ssh://git@github.com/tauri-apps/tauri-plugin-fs-watch.git#9ece132409a14a0e5e0f954a295024c451a3ec8e", - "from": "tauri-plugin-fs-watch-api@tauri-apps/tauri-plugin-fs-watch", + "from": "tauri-plugin-fs-watch-api@github:tauri-apps/tauri-plugin-fs-watch", "requires": { "@tauri-apps/api": "1.0.0-rc.2", "tslib": "^2.3.1" diff --git a/package.json b/package.json index f7ba900..bc5e205 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "crypto-js": "^4.1.1", "jszip": "^3.10.1", "patch-package": "^6.4.7", + "semver": "^7.6.3", "svelte-markdown": "^0.2.3", "tauri-plugin-fs-watch-api": "github:tauri-apps/tauri-plugin-fs-watch" } diff --git a/src/lib/api/download.js b/src/lib/api/download.js index 66e72ed..304b429 100644 --- a/src/lib/api/download.js +++ b/src/lib/api/download.js @@ -2,6 +2,7 @@ import {fetch as tFetch, ResponseType} from '@tauri-apps/api/http'; import {BaseDirectory, createDir, writeBinaryFile, readDir} from "@tauri-apps/api/fs"; import { type, arch } from '@tauri-apps/api/os'; import {invoke} from "@tauri-apps/api/tauri"; +import semverGte from 'semver/functions/gte'; export async function versionExists(version = '5.6.0') { try { @@ -33,6 +34,8 @@ export async function downloadFile(url, targetFile) { export async function downloadVersion(version = '5.6.0') { console.log('we downloadin babey!!'); let platform = await type(); + // They renamed Minetest to Luanti and since version 5.10.0 they renamed the download files as well on the minetest github repo. Linux binaries are fine tho. + const downloadName = semverGte(version, '5.10.0') ? 'luanti' : 'minetest'; switch (platform) { case 'Linux': await createDir(`versions/${version}`, { @@ -44,10 +47,10 @@ export async function downloadVersion(version = '5.6.0') { await createDir(`versions/${version}`, { dir: BaseDirectory.App, }); - return downloadAndUnzip(`https://github.com/minetest/minetest/releases/download/${version}/minetest-${version}-osx.zip`, `/versions/${version}/minetest.app`); + return downloadAndUnzip(`https://github.com/minetest/minetest/releases/download/${version}/${downloadName}-${version}-osx.zip`, `/versions/${version}/minetest.app`); case 'Windows_NT': - return downloadAndUnzip(`https://github.com/minetest/minetest/releases/download/${version}/minetest-${version}-win64.zip`, `/versions/${version}`); + return downloadAndUnzip(`https://github.com/minetest/minetest/releases/download/${version}/${downloadName}-${version}-win64.zip`, `/versions/${version}`); } return false; } diff --git a/src/lib/api/versions.js b/src/lib/api/versions.js index abc481c..2c929e3 100644 --- a/src/lib/api/versions.js +++ b/src/lib/api/versions.js @@ -41,7 +41,7 @@ export async function getVersions(forceReload = false) { } versions = versions.data; - versions = versions.filter(i => i.tag_name !== '5.4.2-android'); + versions = versions.filter(i => !i.tag_name.endsWith('-android')); // 5.4.2-android and 5.8.1-android if ('Darwin' === platform) { versions = versions.filter(i => i.assets.filter(j => j.name.includes('-osx')).length); diff --git a/src/lib/shell.js b/src/lib/shell.js index a440eb1..b0956c4 100644 --- a/src/lib/shell.js +++ b/src/lib/shell.js @@ -2,6 +2,7 @@ import { type, arch } from '@tauri-apps/api/os'; import { appDir } from "@tauri-apps/api/path"; import { invoke } from '@tauri-apps/api/tauri'; import { watchDebugLog, stopWatching } from '$lib/file/logger'; +import semverGte from 'semver/functions/gte'; import { writeMergedConfig } from '$lib/file/config'; @@ -18,15 +19,17 @@ export async function getBinaryLocation(version) { getVersionFolder(version) ]); + // They renamed Minetest to Luanti and since version 5.10.0 they renamed the executable file name as well. Linux seems fine... + const executeableName = semverGte(version, '5.10.0') ? 'luanti' : 'minetest'; switch (platform) { case 'Linux': return `${baseDir}/minetest.AppImage`; case 'Darwin': - return `${baseDir}/minetest.app`; + return `${baseDir}/${executeableName}.app`; case 'Windows_NT': - return `${baseDir}/bin/minetest.exe`; + return `${baseDir}/bin/${executeableName}.exe`; } return `${baseDir}/minetest`;