1
0
Fork 0
mirror of https://gitlab.com/futo-org/fcast.git synced 2025-06-24 21:25:23 +00:00

Added more linux makers and started windows squirrel

This commit is contained in:
Michael Hollister 2024-10-14 17:53:15 -05:00
parent efdec43c43
commit e812a86599
5 changed files with 313 additions and 57 deletions

View file

@ -21,7 +21,9 @@ buildLinux:
script:
- npm install
- npm run build
- npm run make -- --platform="darwin" --arch="arm64"
- npm run make -- --platform="win32" --arch="x64"
- npm run make -- --platform="linux" --arch="x64"
- npm run make -- --platform="linux" --arch="arm64"
when: manual
deploy:

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

View file

@ -6,12 +6,13 @@ const { FusesPlugin } = require('@electron-forge/plugin-fuses');
const { FuseV1Options, FuseVersion } = require('@electron/fuses');
const argv = yargs(hideBin(process.argv)).argv;
// const APPLICATION_NAME = 'FCast Receiver';
const APPLICATION_NAME = 'fcast-receiver';
module.exports = {
packagerConfig: {
asar: true,
icon: './assets/icons/icon',
name: 'FCast Receiver',
osxSign: {},
osxNotarize: {
appleApiKey: process.env.FCAST_APPLE_API_KEY,
@ -21,10 +22,16 @@ module.exports = {
},
rebuildConfig: {},
makers: [
// {
// name: '@electron-forge/maker-squirrel',
// config: {},
// },
{
name: '@electron-forge/maker-deb',
config: {
options: {
categories: ['AudioVideo', 'Audio', 'Video', 'Network', 'Utility'],
homepage: 'https://fcast.org/',
icon: './assets/icons/icon.png',
}
},
},
{
name: '@electron-forge/maker-dmg',
config: {
@ -42,58 +49,97 @@ module.exports = {
},
background: './assets/images/background.png',
contents: [
{ 'x': 90, 'y': 350, 'type': 'file', 'path': `out/FCast Receiver-darwin-${argv.arch}/FCast Receiver.app` },
{ 'x': 90, 'y': 350, 'type': 'file', 'path': `out/${APPLICATION_NAME}-darwin-${argv.arch}/${APPLICATION_NAME}.app` },
{ 'x': 360, 'y': 350, 'type': 'link', 'path': '/Applications' },
{ 'x': 0, 'y': 540, 'type': 'position', 'path': '.background' },
{ 'x': 120, 'y': 540, 'type': 'position', 'path': '.VolumeIcon.icns' }
],
format: 'ULFO',
icon: './assets/icons/icon.icns',
name: 'FCast Receiver'
name: APPLICATION_NAME
}
},
{
name: '@electron-forge/maker-rpm',
config: {
options: {
categories: ['AudioVideo', 'Audio', 'Video', 'Network', 'Utility'],
homepage: 'https://fcast.org/',
icon: './assets/icons/icon.png',
license: 'GPL-3.0+',
}
},
},
{
name: '@electron-forge/maker-squirrel',
config: {
loadingGif: './assets/images/installing.gif'
}
},
{
name: '@electron-forge/maker-zip',
platforms: ['win32', 'darwin', 'linux'],
config: {}
},
// {
// name: '@electron-forge/maker-deb',
// config: {},
// },
// {
// name: '@electron-forge/maker-rpm',
// config: {},
// },
],
hooks: {
postMake: async (forgeConfig, makeResults) => {
makeResults.forEach(e => {
// Standardize artifact output naming
switch (e.platform) {
case "win32":
break;
case "darwin": {
let artifactName = 'FCast Receiver.dmg';
if (fs.existsSync(`./out/make/${artifactName}`)) {
fs.renameSync(`./out/make/${artifactName}`, `./out/make/FCast-Receiver-${e.packageJSON.version}-macOS-${e.arch}.dmg`);
case "win32": {
let artifactName = `${APPLICATION_NAME}-win32-${e.arch}-${e.packageJSON.version}.zip`;
if (fs.existsSync(`./out/make/zip/win32/${e.arch}/${artifactName}`)) {
fs.renameSync(`./out/make/zip/win32/${e.arch}/${artifactName}`, `./out/make/zip/win32/${e.arch}/${APPLICATION_NAME}-${e.packageJSON.version}-windows-${e.arch}.zip`);
}
artifactName = 'FCast Receiver-darwin-arm64-1.0.14.zip';
if (fs.existsSync(`./out/make/zip/darwin/arm64/${artifactName}`)) {
fs.renameSync(`./out/make/zip/darwin/arm64/${artifactName}`, `./out/make/zip/darwin/arm64/FCast-Receiver-${e.packageJSON.version}-macOS-${e.arch}.zip`);
}
artifactName = 'FCast Receiver-darwin-x64-1.0.14.zip';
if (fs.existsSync(`./out/make/zip/darwin/x64/${artifactName}`)) {
fs.renameSync(`./out/make/zip/darwin/x64/${artifactName}`, `./out/make/zip/darwin/x64/FCast-Receiver-${e.packageJSON.version}-macOS-${e.arch}.zip`);
artifactName = `${APPLICATION_NAME}-${e.packageJSON.version} Setup.exe`;
if (fs.existsSync(`./out/make/zip/squirrel.windows/${e.arch}/${artifactName}`)) {
fs.renameSync(`./out/make/zip/squirrel.windows/${e.arch}/${artifactName}`, `./out/make/zip/squirrel.windows/${e.arch}/${APPLICATION_NAME}-${e.packageJSON.version}-windows-${e.arch}-setup.exe`);
}
break;
}
case "linux":
case "darwin": {
let artifactName = `${APPLICATION_NAME}.dmg`;
if (fs.existsSync(`./out/make/${artifactName}`)) {
fs.renameSync(`./out/make/${artifactName}`, `./out/make/FCast-Receiver-${e.packageJSON.version}-macOS-${e.arch}.dmg`);
}
artifactName = `${APPLICATION_NAME}-darwin-${e.arch}-${e.packageJSON.version}.zip`;
if (fs.existsSync(`./out/make/zip/darwin/${e.arch}/${artifactName}`)) {
fs.renameSync(`./out/make/zip/darwin/${e.arch}/${artifactName}`, `./out/make/zip/darwin/${e.arch}/FCast-Receiver-${e.packageJSON.version}-macOS-${e.arch}.zip`);
}
break;
}
case "linux": {
let artifactName = `${APPLICATION_NAME}-linux-${e.arch}-${e.packageJSON.version}.zip`;
if (fs.existsSync(`./out/make/zip/linux/${e.arch}/${artifactName}`)) {
fs.renameSync(`./out/make/zip/linux/${e.arch}/${artifactName}`, `./out/make/zip/linux/${e.arch}/${APPLICATION_NAME}-${e.packageJSON.version}-linux-${e.arch}.zip`);
}
artifactName = `${APPLICATION_NAME}_${e.packageJSON.version}_amd64.deb`
if (fs.existsSync(`./out/make/deb/${e.arch}/${artifactName}`)) {
fs.renameSync(`./out/make/deb/${e.arch}/${artifactName}`, `./out/make/deb/${e.arch}/${APPLICATION_NAME}-${e.packageJSON.version}-linux-${e.arch}.deb`);
}
artifactName = `${APPLICATION_NAME}_${e.packageJSON.version}_arm64.deb`
if (fs.existsSync(`./out/make/deb/${e.arch}/${artifactName}`)) {
fs.renameSync(`./out/make/deb/${e.arch}/${artifactName}`, `./out/make/deb/${e.arch}/${APPLICATION_NAME}-${e.packageJSON.version}-linux-${e.arch}.deb`);
}
artifactName = `${APPLICATION_NAME}-${e.packageJSON.version}-1.x86_64.rpm`
if (fs.existsSync(`./out/make/rpm/${e.arch}/${artifactName}`)) {
fs.renameSync(`./out/make/rpm/${e.arch}/${artifactName}`, `./out/make/rpm/${e.arch}/${APPLICATION_NAME}-${e.packageJSON.version}-linux-${e.arch}.rpm`);
}
artifactName = `${APPLICATION_NAME}-${e.packageJSON.version}-1.arm64.rpm`
if (fs.existsSync(`./out/make/rpm/${e.arch}/${artifactName}`)) {
fs.renameSync(`./out/make/rpm/${e.arch}/${artifactName}`, `./out/make/rpm/${e.arch}/${APPLICATION_NAME}-${e.packageJSON.version}-linux-${e.arch}.rpm`);
}
break;
}
default:
break;
}

View file

@ -22,10 +22,10 @@
},
"devDependencies": {
"@electron-forge/cli": "^7.4.0",
"@electron-forge/maker-deb": "^7.4.0",
"@electron-forge/maker-deb": "^7.5.0",
"@electron-forge/maker-dmg": "^7.5.0",
"@electron-forge/maker-rpm": "^7.4.0",
"@electron-forge/maker-squirrel": "^7.4.0",
"@electron-forge/maker-rpm": "^7.5.0",
"@electron-forge/maker-squirrel": "^7.5.0",
"@electron-forge/maker-zip": "^7.4.0",
"@electron-forge/plugin-auto-unpack-natives": "^7.4.0",
"@electron-forge/plugin-fuses": "^7.4.0",
@ -1274,14 +1274,14 @@
}
},
"node_modules/@electron-forge/maker-deb": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-7.4.0.tgz",
"integrity": "sha512-npWea3IpGeu96xNqJpsCOYX6V4E+HY6u/okeTUzUOMX96UteT14MecdUefMam158glRTX84k2ryh7WcBoOa4mg==",
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/maker-deb/-/maker-deb-7.5.0.tgz",
"integrity": "sha512-rMXYJzu2LuyDQ5TX4VzQ2OSWDFC7Y1nJpBoyJvXfkA5fF5NNScOFYPv1YzEYAXMcG5hCOVLorsG9HDTEC8uh9g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@electron-forge/maker-base": "7.4.0",
"@electron-forge/shared-types": "7.4.0"
"@electron-forge/maker-base": "7.5.0",
"@electron-forge/shared-types": "7.5.0"
},
"engines": {
"node": ">= 16.4.0"
@ -1290,6 +1290,88 @@
"electron-installer-debian": "^3.2.0"
}
},
"node_modules/@electron-forge/maker-deb/node_modules/@electron-forge/maker-base": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.5.0.tgz",
"integrity": "sha512-+jluKW2UPxaI1+qQQ8fqaUVVbZohRjOSF0Iti7STRFbgJKJitzPB24Cjji9qJCKIx5klMeEiwp0YPAE/d9Xt8g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@electron-forge/shared-types": "7.5.0",
"fs-extra": "^10.0.0",
"which": "^2.0.2"
},
"engines": {
"node": ">= 16.4.0"
}
},
"node_modules/@electron-forge/maker-deb/node_modules/@electron-forge/shared-types": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.5.0.tgz",
"integrity": "sha512-VXuLVGYa3ZulBlmjA40ZEpk+iPH5ebN0v7t27wDt3rm23bph2aQrL7uSTLXhobenXYBVKggXnQt6rJ9A7FCDNQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@electron-forge/tracer": "7.5.0",
"@electron/packager": "^18.3.5",
"@electron/rebuild": "^3.2.10",
"listr2": "^7.0.2"
},
"engines": {
"node": ">= 16.4.0"
}
},
"node_modules/@electron-forge/maker-deb/node_modules/@electron-forge/tracer": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.5.0.tgz",
"integrity": "sha512-1dE0wKCmv/K3BXCH70o2jp/y2kXgZQm73gIvzyadySXYwu2L4BWxhAO+Q+JsnbUk+nclHEup5ph4D0JoPIWLcQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"chrome-trace-event": "^1.0.3"
},
"engines": {
"node": ">= 14.17.5"
}
},
"node_modules/@electron-forge/maker-deb/node_modules/fs-extra": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
"integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/@electron-forge/maker-deb/node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"universalify": "^2.0.0"
},
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/@electron-forge/maker-deb/node_modules/universalify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
"integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 10.0.0"
}
},
"node_modules/@electron-forge/maker-dmg": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/maker-dmg/-/maker-dmg-7.5.0.tgz",
@ -1391,14 +1473,14 @@
}
},
"node_modules/@electron-forge/maker-rpm": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-7.4.0.tgz",
"integrity": "sha512-N64Yh/K/91GzIk28T1jKsCGgYaquDuhXcEJW+TkVyP5tPZ9aTz9SjXLBxAg8WhcroArAZEsVyPOFKthmFzAUuA==",
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/maker-rpm/-/maker-rpm-7.5.0.tgz",
"integrity": "sha512-NzrtEqa61D++GoaURpicj9oxwOA/z0wcZaeipsrzUEBXE53UAo47tdIZjh396MhC0z9Mr6bxgDwpPUZF9QgfDA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@electron-forge/maker-base": "7.4.0",
"@electron-forge/shared-types": "7.4.0"
"@electron-forge/maker-base": "7.5.0",
"@electron-forge/shared-types": "7.5.0"
},
"engines": {
"node": ">= 16.4.0"
@ -1407,15 +1489,97 @@
"electron-installer-redhat": "^3.2.0"
}
},
"node_modules/@electron-forge/maker-squirrel": {
"version": "7.4.0",
"resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-7.4.0.tgz",
"integrity": "sha512-mCQyufnSNfjffiKho59ZqVg4W601zGOl6h01OyfDwjOU/G4iQtpnnDEOXGe26q7OVT5ORb1WDnfyGgBeJ6Ge7g==",
"node_modules/@electron-forge/maker-rpm/node_modules/@electron-forge/maker-base": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.5.0.tgz",
"integrity": "sha512-+jluKW2UPxaI1+qQQ8fqaUVVbZohRjOSF0Iti7STRFbgJKJitzPB24Cjji9qJCKIx5klMeEiwp0YPAE/d9Xt8g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@electron-forge/maker-base": "7.4.0",
"@electron-forge/shared-types": "7.4.0",
"@electron-forge/shared-types": "7.5.0",
"fs-extra": "^10.0.0",
"which": "^2.0.2"
},
"engines": {
"node": ">= 16.4.0"
}
},
"node_modules/@electron-forge/maker-rpm/node_modules/@electron-forge/shared-types": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.5.0.tgz",
"integrity": "sha512-VXuLVGYa3ZulBlmjA40ZEpk+iPH5ebN0v7t27wDt3rm23bph2aQrL7uSTLXhobenXYBVKggXnQt6rJ9A7FCDNQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@electron-forge/tracer": "7.5.0",
"@electron/packager": "^18.3.5",
"@electron/rebuild": "^3.2.10",
"listr2": "^7.0.2"
},
"engines": {
"node": ">= 16.4.0"
}
},
"node_modules/@electron-forge/maker-rpm/node_modules/@electron-forge/tracer": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.5.0.tgz",
"integrity": "sha512-1dE0wKCmv/K3BXCH70o2jp/y2kXgZQm73gIvzyadySXYwu2L4BWxhAO+Q+JsnbUk+nclHEup5ph4D0JoPIWLcQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"chrome-trace-event": "^1.0.3"
},
"engines": {
"node": ">= 14.17.5"
}
},
"node_modules/@electron-forge/maker-rpm/node_modules/fs-extra": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",
"integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
"universalify": "^2.0.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/@electron-forge/maker-rpm/node_modules/jsonfile": {
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
"integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"universalify": "^2.0.0"
},
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/@electron-forge/maker-rpm/node_modules/universalify": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
"integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==",
"dev": true,
"license": "MIT",
"engines": {
"node": ">= 10.0.0"
}
},
"node_modules/@electron-forge/maker-squirrel": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/maker-squirrel/-/maker-squirrel-7.5.0.tgz",
"integrity": "sha512-fz3vbp1BnbQWeZVVM3lKOGhrCVKLjAXKDTntBL2+8Rz02a63eozGjOtC5KZYXax6nM4TF6LvwjagY/qTs5jFag==",
"dev": true,
"license": "MIT",
"dependencies": {
"@electron-forge/maker-base": "7.5.0",
"@electron-forge/shared-types": "7.5.0",
"fs-extra": "^10.0.0"
},
"engines": {
@ -1425,6 +1589,50 @@
"electron-winstaller": "^5.3.0"
}
},
"node_modules/@electron-forge/maker-squirrel/node_modules/@electron-forge/maker-base": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/maker-base/-/maker-base-7.5.0.tgz",
"integrity": "sha512-+jluKW2UPxaI1+qQQ8fqaUVVbZohRjOSF0Iti7STRFbgJKJitzPB24Cjji9qJCKIx5klMeEiwp0YPAE/d9Xt8g==",
"dev": true,
"license": "MIT",
"dependencies": {
"@electron-forge/shared-types": "7.5.0",
"fs-extra": "^10.0.0",
"which": "^2.0.2"
},
"engines": {
"node": ">= 16.4.0"
}
},
"node_modules/@electron-forge/maker-squirrel/node_modules/@electron-forge/shared-types": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/shared-types/-/shared-types-7.5.0.tgz",
"integrity": "sha512-VXuLVGYa3ZulBlmjA40ZEpk+iPH5ebN0v7t27wDt3rm23bph2aQrL7uSTLXhobenXYBVKggXnQt6rJ9A7FCDNQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@electron-forge/tracer": "7.5.0",
"@electron/packager": "^18.3.5",
"@electron/rebuild": "^3.2.10",
"listr2": "^7.0.2"
},
"engines": {
"node": ">= 16.4.0"
}
},
"node_modules/@electron-forge/maker-squirrel/node_modules/@electron-forge/tracer": {
"version": "7.5.0",
"resolved": "https://registry.npmjs.org/@electron-forge/tracer/-/tracer-7.5.0.tgz",
"integrity": "sha512-1dE0wKCmv/K3BXCH70o2jp/y2kXgZQm73gIvzyadySXYwu2L4BWxhAO+Q+JsnbUk+nclHEup5ph4D0JoPIWLcQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"chrome-trace-event": "^1.0.3"
},
"engines": {
"node": ">= 14.17.5"
}
},
"node_modules/@electron-forge/maker-squirrel/node_modules/fs-extra": {
"version": "10.1.0",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz",

View file

@ -3,10 +3,10 @@
"version": "1.0.14",
"description": "An application implementing a FCast receiver.",
"main": "dist/bundle.js",
"author": "Koen Jeukendrup",
"author": "FUTO",
"license": "MIT",
"scripts": {
"build": "rm -rf dist/ && webpack --config ./webpack.config.js && cp -r src/player dist/player && cp -r src/main dist/main && cp assets/icons/icon.ico dist/ && cp assets/icons/icon.png dist/",
"build": "rm -rf dist/ && webpack --config ./webpack.config.js && cp -r src/player dist/player && cp -r src/main dist/main && cp assets/icons/icon.ico dist/ && cp assets/icons/icon.png dist/ && cp assets/icons/icon512.png dist/",
"start": "electron-forge start",
"test": "jest",
"package": "electron-forge package",
@ -14,10 +14,10 @@
},
"devDependencies": {
"@electron-forge/cli": "^7.4.0",
"@electron-forge/maker-deb": "^7.4.0",
"@electron-forge/maker-deb": "^7.5.0",
"@electron-forge/maker-dmg": "^7.5.0",
"@electron-forge/maker-rpm": "^7.4.0",
"@electron-forge/maker-squirrel": "^7.4.0",
"@electron-forge/maker-rpm": "^7.5.0",
"@electron-forge/maker-squirrel": "^7.5.0",
"@electron-forge/maker-zip": "^7.4.0",
"@electron-forge/plugin-auto-unpack-natives": "^7.4.0",
"@electron-forge/plugin-fuses": "^7.4.0",