diff --git a/forge.config.ts b/forge.config.ts
index df5089e8..7cead5b8 100644
--- a/forge.config.ts
+++ b/forge.config.ts
@@ -94,9 +94,9 @@ function removeCodeSignatures(dir: string) {
const config: ForgeConfig = {
packagerConfig: {
- name: 'Cyd',
- executableName: os.platform() == 'linux' ? 'cyd' : 'Cyd',
- appBundleId: 'systems.lockdown.cyd',
+ name: process.env.CYD_ENV == 'prod' ? 'Cyd' : 'Cyd Dev',
+ executableName: os.platform() == 'linux' ? (process.env.CYD_ENV == 'prod' ? 'cyd' : 'cyd-dev') : (process.env.CYD_ENV == 'prod' ? 'Cyd' : 'Cyd Dev'),
+ appBundleId: process.env.CYD_ENV == 'prod' ? 'systems.lockdown.cyd' : 'systems.lockdown.cyd-dev',
appCopyright: `Copyright ${new Date().getFullYear()} Lockdown Systems LLC`,
asar: true,
icon: path.join(assetsPath, 'icon'),
@@ -121,7 +121,7 @@ const config: ForgeConfig = {
// Windows
new MakerSquirrel({
iconUrl: "https://releases.lockdown.systems/cyd/icon.ico",
- name: "Cyd",
+ name: process.env.CYD_ENV == 'prod' ? "Cyd" : "CydDev",
setupIcon: path.join(assetsPath, "installer-icon.ico"),
loadingGif: path.join(assetsPath, "installer-loading.gif"),
windowsSign: process.env.WINDOWS_RELEASE === 'true' ? {
@@ -133,13 +133,13 @@ const config: ForgeConfig = {
}),
// macOS DMG
new MakerDMG({
- name: `Cyd ${version}`,
+ name: process.env.CYD_ENV == 'prod' ? `Cyd ${version}` : `Cyd Dev ${version}`,
background: path.join(assetsPath, 'dmg-background.png'),
icon: path.join(assetsPath, 'installer-icon.icns'),
iconSize: 110,
overwrite: true,
contents: [
- { "x": 270, "y": 142, "type": "file", "path": `${process.cwd()}/out/Cyd-darwin-universal/Cyd.app` },
+ { "x": 270, "y": 142, "type": "file", "path": process.env.CYD_ENV == 'prod' ? `${process.cwd()}/out/Cyd-darwin-universal/Cyd.app` : `${process.cwd()}/out/Cyd Dev-darwin-universal/Cyd Dev.app` },
{ "x": 428, "y": 142, "type": "link", "path": "/Applications" }
],
additionalDMGOptions: {
@@ -156,7 +156,16 @@ const config: ForgeConfig = {
macUpdateManifestBaseUrl: `https://releases.lockdown.systems/cyd/${process.env.CYD_ENV}/macos/universal`
}),
// Linux RPM
- new MakerRpm({}),
+ new MakerRpm({
+ // @ts-expect-error I think the typescript definitions are wrong, but this should work
+ icon: path.join(assetsPath, 'icon.png'),
+ homepage: 'https://cyd.social',
+ categories: ['Utility', 'Network'],
+ description: 'Claw back your data from Big Tech',
+ productName: process.env.CYD_ENV == 'prod' ? "Cyd" : "Cyd Dev",
+ bin: process.env.CYD_ENV == 'prod' ? "cyd" : "cyd-dev",
+ name: process.env.CYD_ENV == 'prod' ? "cyd" : "cyd-dev",
+ }),
// Linux Debian
new MakerDeb({
options: {
@@ -165,7 +174,9 @@ const config: ForgeConfig = {
homepage: 'https://cyd.social',
categories: ['Utility', 'Network'],
description: 'Claw back your data from Big Tech',
- productName: "Cyd",
+ productName: process.env.CYD_ENV == 'prod' ? "Cyd" : "Cyd Dev",
+ bin: process.env.CYD_ENV == 'prod' ? "cyd" : "cyd-dev",
+ name: process.env.CYD_ENV == 'prod' ? "cyd" : "cyd-dev",
}
})
],
@@ -210,8 +221,8 @@ const config: ForgeConfig = {
console.log('🍎 Preparing to codesign macOS app bundle');
- const universalBuildPath = path.join(__dirname, 'out', 'Cyd-darwin-universal');
- const appPath = path.join(universalBuildPath, "Cyd.app");
+ const universalBuildPath = path.join(__dirname, 'out', process.env.CYD_ENV == 'prod' ? 'Cyd-darwin-universal' : 'Cyd Dev-darwin-universal');
+ const appPath = path.join(universalBuildPath, process.env.CYD_ENV == 'prod' ? "Cyd.app" : "Cyd Dev.app");
const identity = "Developer ID Application: Lockdown Systems LLC (G762K6CH36)";
const entitlementDefault = path.join(assetsPath, 'entitlements', 'default.plist');
const entitlementGpu = path.join(assetsPath, 'entitlements', 'gpu.plist');
diff --git a/scripts/make-dev-linux.sh b/scripts/make-dev-linux.sh
index 317e4645..251f8c29 100755
--- a/scripts/make-dev-linux.sh
+++ b/scripts/make-dev-linux.sh
@@ -1,6 +1,6 @@
#!/bin/sh
export CYD_ENV=dev
-export DEBUG=electron-packager,electron-universal,electron-forge*
+export DEBUG=electron-packager,electron-universal,electron-forge*,electron-installer*
./scripts/clean.sh
electron-forge make
diff --git a/scripts/make-dev-macos.sh b/scripts/make-dev-macos.sh
index 550bde72..0c9d97dd 100755
--- a/scripts/make-dev-macos.sh
+++ b/scripts/make-dev-macos.sh
@@ -1,6 +1,6 @@
#!/bin/sh
export CYD_ENV=dev
-export DEBUG=electron-packager,electron-universal,electron-forge*
+export DEBUG=electron-packager,electron-universal,electron-forge*,electron-installer*
./scripts/clean.sh
electron-forge make --arch universal
\ No newline at end of file
diff --git a/scripts/make-dev-windows.ps1 b/scripts/make-dev-windows.ps1
index 9d2a4870..d347b329 100644
--- a/scripts/make-dev-windows.ps1
+++ b/scripts/make-dev-windows.ps1
@@ -1,6 +1,6 @@
#!/usr/bin/env pwsh
$env:CYD_ENV = "dev"
-$env:DEBUG = "electron-packager,electron-universal,electron-forge*"
+$env:DEBUG = "electron-packager,electron-universal,electron-forge*,electron-installer*"
$env:WINDOWS_RELEASE = "false"
# https://github.com/Squirrel/Squirrel.Windows/issues/1838#issuecomment-1514089628
diff --git a/scripts/make-local-linux.sh b/scripts/make-local-linux.sh
index 2b4bd615..487c2369 100755
--- a/scripts/make-local-linux.sh
+++ b/scripts/make-local-linux.sh
@@ -1,6 +1,6 @@
#!/bin/sh
export CYD_ENV=local
-export DEBUG=electron-packager,electron-universal,electron-forge*
+export DEBUG=electron-packager,electron-universal,electron-forge*,electron-installer*
./scripts/clean.sh
electron-forge make
\ No newline at end of file
diff --git a/scripts/make-local-macos.sh b/scripts/make-local-macos.sh
index 80064331..ec476a96 100755
--- a/scripts/make-local-macos.sh
+++ b/scripts/make-local-macos.sh
@@ -1,6 +1,6 @@
#!/bin/sh
export CYD_ENV=local
-export DEBUG=electron-packager,electron-universal,electron-forge*
+export DEBUG=electron-packager,electron-universal,electron-forge*,electron-installer*
./scripts/clean.sh
electron-forge make --arch universal
\ No newline at end of file
diff --git a/scripts/make-prod-linux.sh b/scripts/make-prod-linux.sh
index ae414c34..bd5e385a 100755
--- a/scripts/make-prod-linux.sh
+++ b/scripts/make-prod-linux.sh
@@ -1,6 +1,6 @@
#!/bin/sh
export CYD_ENV=prod
-export DEBUG=electron-packager,electron-universal,electron-forge*
+export DEBUG=electron-packager,electron-universal,electron-forge*,electron-installer*
./scripts/clean.sh
electron-forge make
diff --git a/scripts/make-prod-macos.sh b/scripts/make-prod-macos.sh
index 77f090d9..190e6ee5 100755
--- a/scripts/make-prod-macos.sh
+++ b/scripts/make-prod-macos.sh
@@ -1,6 +1,6 @@
#!/bin/sh
export CYD_ENV=prod
-export DEBUG=electron-packager,electron-universal,electron-forge*
+export DEBUG=electron-packager,electron-universal,electron-forge*,electron-installer*
./scripts/clean.sh
electron-forge make --arch universal
\ No newline at end of file
diff --git a/scripts/make-prod-windows.ps1 b/scripts/make-prod-windows.ps1
index 1daa5b55..6c4acfe6 100644
--- a/scripts/make-prod-windows.ps1
+++ b/scripts/make-prod-windows.ps1
@@ -1,6 +1,6 @@
#!/usr/bin/env pwsh
$env:CYD_ENV = "prod"
-$env:DEBUG = "electron-packager,electron-universal,electron-forge*"
+$env:DEBUG = "electron-packager,electron-universal,electron-forge*,electron-installer*"
$env:WINDOWS_RELEASE = "false"
# https://github.com/Squirrel/Squirrel.Windows/issues/1838#issuecomment-1514089628
diff --git a/scripts/publish-dev-macos.sh b/scripts/publish-dev-macos.sh
index bb72c5e5..cf71ee32 100755
--- a/scripts/publish-dev-macos.sh
+++ b/scripts/publish-dev-macos.sh
@@ -1,6 +1,6 @@
#!/bin/sh
export CYD_ENV=dev
-export DEBUG=electron-packager,electron-universal,electron-forge*
+export DEBUG=electron-packager,electron-universal,electron-forge*,electron-installer*
./scripts/clean.sh
electron-forge publish --arch universal
\ No newline at end of file
diff --git a/scripts/publish-dev-windows.ps1 b/scripts/publish-dev-windows.ps1
index 7031a8b9..9883368e 100644
--- a/scripts/publish-dev-windows.ps1
+++ b/scripts/publish-dev-windows.ps1
@@ -1,6 +1,6 @@
#!/usr/bin/env pwsh
$env:CYD_ENV = "dev"
-$env:DEBUG = "electron-packager,electron-universal,electron-forge*"
+$env:DEBUG = "electron-packager,electron-universal,electron-forge*,electron-installer*"
$env:WINDOWS_RELEASE = "true"
# https://github.com/Squirrel/Squirrel.Windows/issues/1838#issuecomment-1514089628
diff --git a/scripts/publish-prod-macos.sh b/scripts/publish-prod-macos.sh
index 3e7c56dd..491a07b3 100755
--- a/scripts/publish-prod-macos.sh
+++ b/scripts/publish-prod-macos.sh
@@ -1,6 +1,6 @@
#!/bin/sh
export CYD_ENV=prod
-export DEBUG=electron-packager,electron-universal,electron-forge*
+export DEBUG=electron-packager,electron-universal,electron-forge*,electron-installer*
./scripts/clean.sh
electron-forge publish --arch universal
\ No newline at end of file
diff --git a/scripts/publish-prod-windows.ps1 b/scripts/publish-prod-windows.ps1
index 673786a3..bda27671 100644
--- a/scripts/publish-prod-windows.ps1
+++ b/scripts/publish-prod-windows.ps1
@@ -1,6 +1,6 @@
#!/usr/bin/env pwsh
$env:CYD_ENV = "prod"
-$env:DEBUG = "electron-packager,electron-universal,electron-forge*"
+$env:DEBUG = "electron-packager,electron-universal,electron-forge*,electron-installer*"
$env:WINDOWS_RELEASE = "true"
# https://github.com/Squirrel/Squirrel.Windows/issues/1838#issuecomment-1514089628
diff --git a/src/main.ts b/src/main.ts
index 3f46524d..5fede183 100644
--- a/src/main.ts
+++ b/src/main.ts
@@ -49,6 +49,14 @@ if (!fs.existsSync(configPath)) {
}
const config: Config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
+// Set the app name
+if (config.mode == "prod") {
+ // cyd with a lowercase c, for backwards compatibility
+ app.setName('cyd');
+} else {
+ app.setName('Cyd Dev');
+}
+
// Handle creating/removing shortcuts on Windows when installing/uninstalling.
if (require('electron-squirrel-startup')) {
app.quit();
@@ -71,13 +79,13 @@ async function initializeApp() {
// Display message in dev mode
if (config.mode == "dev") {
dialog.showMessageBoxSync({
- title: `Cyd ${app.getVersion()}`,
+ title: `Cyd Dev ${app.getVersion()}`,
message: `You're running Cyd ${app.getVersion()}. It uses the dev server and it might contain bugs.`,
type: 'info',
});
} else if (config.mode == "local") {
dialog.showMessageBoxSync({
- title: `Cyd ${app.getVersion()}`,
+ title: `Cyd Local ${app.getVersion()}`,
message: `You're running Cyd ${app.getVersion()} in local mode.`,
type: 'info',
});
@@ -154,7 +162,7 @@ async function createWindow() {
webviewTag: true,
preload: path.join(__dirname, './preload.js')
},
- icon: icon
+ icon: icon,
});
// Handle power monitor events
@@ -249,6 +257,14 @@ async function createWindow() {
}
});
+ ipcMain.handle('getMode', async () => {
+ try {
+ return config.mode;
+ } catch (error) {
+ throw new Error(packageExceptionForReport(error as Error));
+ }
+ });
+
ipcMain.handle('getPlatform', async () => {
try {
return os.platform();
diff --git a/src/preload.ts b/src/preload.ts
index 67f88fbf..f38c3638 100644
--- a/src/preload.ts
+++ b/src/preload.ts
@@ -24,6 +24,9 @@ contextBridge.exposeInMainWorld('electron', {
getVersion: (): Promise
+ {{ mode != 'prod' ? 'Dev' : '' }}
version {{ appVersion }}