Fix proxy path resolution for portable builds, simplify landing page

The proxy launch used __dirname to find aware-cam-proxy.exe, which
points to a temp extraction directory in portable builds. Added
getAppDirectory() helper that resolves the actual .exe location via
PORTABLE_EXECUTABLE_FILE. Rewrote landing page as a simple kit download
page. Added build-kit script to bundle app + proxy + extension into zip.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Zac
2026-02-10 19:23:48 -05:00
parent 3a6be50e31
commit 099cc252fe
4 changed files with 193 additions and 168 deletions
+12 -2
View File
@@ -13,6 +13,16 @@ let cookieServer = null;
const COOKIE_SERVER_PORT = 18247;
const COOKIE_SERVER_TOKEN = 'apt-local-bridge-token';
// Get the directory where the user-facing executable resides.
// In portable builds, __dirname points to a temp extraction directory,
// so we use the actual .exe location instead.
function getAppDirectory() {
if (app.isPackaged) {
return path.dirname(process.env.PORTABLE_EXECUTABLE_FILE || app.getPath('exe'));
}
return __dirname;
}
// Sanitize strings before embedding in batch files to prevent command injection
function sanitizeBatchInput(input) {
if (typeof input !== 'string') return '';
@@ -238,7 +248,7 @@ ipcMain.handle('api-get-auth-info', async (event, { deploymentUrl, cookies }) =>
ipcMain.handle('camera-proxy-cookie-launch', async (event, { deploymentUrl, cookieKey, deviceUuid }) => {
try {
// Path to the cookie-based camera proxy executable
const proxyExePath = path.join(__dirname, 'aware-cam-proxy.exe');
const proxyExePath = path.join(getAppDirectory(), 'aware-cam-proxy.exe');
// Check if the executable exists
if (!fs.existsSync(proxyExePath)) {
@@ -502,7 +512,7 @@ ipcMain.handle('download-and-install-update', async (event, { downloadUrl }) =>
try {
// Determine the path to the currently running executable
const currentExePath = process.env.PORTABLE_EXECUTABLE_FILE || app.getPath('exe');
const currentDir = path.dirname(currentExePath);
const currentDir = getAppDirectory();
const currentExeName = path.basename(currentExePath);
// Check write permission on the app directory