KDE Plasma Widget for displaying real time arrivals for MARTA buses.
kde plasma marta transit
0

Configure Feed

Select the types of activity you want to include in your feed.

marta-us-plasmoid / scripts / package.mjs
1.3 kB 30 lines
1#!/usr/bin/env node 2import { execFile } from "node:child_process"; 3import { createHash } from "node:crypto"; 4import { mkdir, readFile, rm, writeFile } from "node:fs/promises"; 5import { basename, dirname, resolve } from "node:path"; 6import { fileURLToPath } from "node:url"; 7import { promisify } from "node:util"; 8 9const executeFile = promisify(execFile); 10const projectRoot = resolve(dirname(fileURLToPath(import.meta.url)), ".."); 11const metadata = JSON.parse(await readFile(resolve(projectRoot, "metadata.json"), "utf8")); 12const version = metadata.KPlugin?.Version; 13if (!version) throw new Error("metadata.json must define KPlugin.Version"); 14 15const outputFile = process.argv[2] 16 ? resolve(process.argv[2]) 17 : resolve(projectRoot, "dist", `marta-bus-arrivals-${version}.plasmoid`); 18 19await mkdir(dirname(outputFile), { recursive: true }); 20await rm(outputFile, { force: true }); 21await executeFile("zip", ["-r", "-q", outputFile, "metadata.json", "contents", "LICENSE.md"], { 22 cwd: projectRoot 23}); 24 25const archive = await readFile(outputFile); 26const checksum = createHash("sha256").update(archive).digest("hex"); 27const checksumFile = resolve(dirname(outputFile), "SHA256SUMS"); 28await writeFile(checksumFile, `${checksum} ${basename(outputFile)}\n`); 29 30console.log(outputFile);