padloc/packages/tauri/generate-tauri-update-file.js

43 lines
1.6 KiB
JavaScript

const { resolve } = require("path");
const { writeFileSync } = require("fs");
require("dotenv").config();
const rootDir = resolve(__dirname, "../..");
const assetsDir = resolve(rootDir, process.env.PL_ASSETS_DIR || "assets");
const tauriUpdateFilePath = resolve(__dirname, "tauri-update.json");
const packageFilePath = resolve(__dirname, "package.json");
const manifestFilePath = resolve(assetsDir, "manifest.json");
const { version } = require(packageFilePath);
const manifest = require(manifestFilePath);
const now = new Date().toISOString();
const vendorVersion = process.env.PL_VENDOR_VERSION || version;
const vendorName = manifest.name;
const vendorNameLowercase = vendorName.toLowerCase();
const vendorBaseUrl = process.env.PL_VENDOR_BASE_URL || "https://github.com/padloc/padloc";
const baseUrl = `${vendorBaseUrl}/releases/download/v${vendorVersion}`;
const tauriUpdate = {
name: `v${vendorVersion}`,
pub_date: now,
platforms: {
darwin: {
url: `${baseUrl}/${vendorName}.app.tar.gz`,
signature: `${baseUrl}/${vendorName}.app.tar.gz.sig`,
},
linux: {
url: `${baseUrl}/${vendorNameLowercase}_${vendorVersion}_amd64.AppImage.tar.gz`,
signature: `${baseUrl}/${vendorNameLowercase}_${vendorVersion}_amd64.AppImage.tar.gz.sig`,
},
win64: {
url: `${baseUrl}/${vendorName}_${vendorVersion}_x64.msi.zip`,
signature: `${baseUrl}/${vendorName}_${vendorVersion}_x64.msi.zip.sig`,
},
},
};
writeFileSync(tauriUpdateFilePath, JSON.stringify(tauriUpdate, null, 4), "utf-8");