mirror of
https://gitlab.com/vyla-entertainment/home.git
synced 2026-11-14 22:27:20 -05:00
maybe created auto updater?
This commit is contained in:
@@ -358,7 +358,8 @@ class UpdateClient {
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
const release = releases.slice().sort((a, b) => cmp(b.tag_name, a.tag_name))[0];
|
||||
const ordered = releases.slice().sort((a, b) => cmp(b.tag_name, a.tag_name));
|
||||
const release = ordered[0];
|
||||
const links = release.assets && release.assets.links ? release.assets.links : [];
|
||||
const manifestAsset = links.find((a) => a.name === 'manifest.json');
|
||||
|
||||
@@ -403,6 +404,10 @@ class UpdateClient {
|
||||
}
|
||||
}
|
||||
|
||||
if (!installer) {
|
||||
installer = await this.findInstaller(ordered, release.tag_name);
|
||||
}
|
||||
|
||||
const out = {
|
||||
version: release.tag_name,
|
||||
sha256: manifest.sha256 || null,
|
||||
@@ -414,6 +419,28 @@ class UpdateClient {
|
||||
return out;
|
||||
}
|
||||
|
||||
async findInstaller(ordered, skipTag) {
|
||||
for (const r of ordered.slice(0, 6)) {
|
||||
if (r.tag_name === skipTag) continue;
|
||||
const rl = r.assets && r.assets.links ? r.assets.links : [];
|
||||
const ma = rl.find((a) => a.name === 'manifest.json');
|
||||
if (!ma) continue;
|
||||
try {
|
||||
const m = await this.fetchAssetJson(ma.url);
|
||||
if (!m.installer || !verifyManifest(m)) continue;
|
||||
const link = rl.find((a) => a.name === m.installer.file);
|
||||
if (!link) continue;
|
||||
return {
|
||||
url: link.url,
|
||||
sha256: m.installer.sha256,
|
||||
size: m.installer.size,
|
||||
version: m.installer.version
|
||||
};
|
||||
} catch (e) { }
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
async downloadUpdate(release, destPath, onProgress) {
|
||||
await this.downloadFile(release.url, destPath, onProgress);
|
||||
return destPath;
|
||||
|
||||
Reference in New Issue
Block a user