mirror of
https://github.com/PreMiD/PreMiD.git
synced 2026-04-05 20:31:58 +02:00
124 lines
2.2 KiB
TypeScript
124 lines
2.2 KiB
TypeScript
import * as electronPackager from "electron-packager";
|
|
import { platform } from "os";
|
|
import * as prompts from "prompts";
|
|
import * as ora from "ora";
|
|
|
|
(async () => {
|
|
let response = {
|
|
os: "current",
|
|
arch: "all"
|
|
};
|
|
|
|
if (process.env.NODE_ENV !== "DePloY")
|
|
response = await prompts([
|
|
{
|
|
type: "select",
|
|
name: "arch",
|
|
message: "What architecture?",
|
|
choices: [
|
|
{
|
|
title: "current",
|
|
value: "current"
|
|
},
|
|
{
|
|
title: "all",
|
|
value: "all"
|
|
},
|
|
{
|
|
title: "arm64",
|
|
value: "arm64"
|
|
},
|
|
{
|
|
title: "armv7l",
|
|
value: "armv7l"
|
|
},
|
|
{
|
|
title: "ia32",
|
|
value: "ia32"
|
|
},
|
|
{
|
|
title: "mips64el",
|
|
value: "mips64el"
|
|
},
|
|
{
|
|
title: "x64",
|
|
value: "x64"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
type: "select",
|
|
name: "os",
|
|
message: "What operating system?",
|
|
choices: [
|
|
{
|
|
title: "current",
|
|
value: "current"
|
|
},
|
|
{
|
|
title: "all",
|
|
value: "all"
|
|
},
|
|
{
|
|
title: "darwin",
|
|
value: "darwin"
|
|
},
|
|
{
|
|
title: "linux",
|
|
value: "linux"
|
|
},
|
|
{
|
|
title: "mas",
|
|
value: "mas"
|
|
},
|
|
{
|
|
title: "win32",
|
|
value: "win32"
|
|
}
|
|
]
|
|
}
|
|
]);
|
|
|
|
if (!response.os) {
|
|
process.exit();
|
|
}
|
|
|
|
let icon: string;
|
|
|
|
if (
|
|
response.os == "darwin" ||
|
|
(response.os === "current" && platform() === "darwin")
|
|
)
|
|
icon = "./installer_assets/appIcon.icns";
|
|
if (["ia32", "x64"].includes(response.arch) || platform() === "win32")
|
|
icon = "./installer_assets/appIcon.ico";
|
|
|
|
let spinner = ora("Packaging app").start(),
|
|
packagingOptions: electronPackager.Options = {
|
|
dir: "./dist/app",
|
|
out: "./dist",
|
|
darwinDarkModeSupport: true,
|
|
icon: icon,
|
|
overwrite: true,
|
|
quiet: true,
|
|
appBundleId: "eu.Timeraa.PreMiD",
|
|
appCategoryType: "Utilities",
|
|
appCopyright: `Timeraa 2018-${new Date().getFullYear()}`,
|
|
prune: true,
|
|
asar: true,
|
|
// @ts-ignore
|
|
arch: response.arch,
|
|
// @ts-ignore
|
|
platform: response.os
|
|
};
|
|
|
|
if (response.arch === "current") delete packagingOptions.arch;
|
|
if (response.os === "current") delete packagingOptions.platform;
|
|
|
|
electronPackager(packagingOptions).then(() => {
|
|
spinner.text = "Done!";
|
|
spinner.succeed();
|
|
process.exit();
|
|
});
|
|
})();
|