Upload main.js via GUI

This commit is contained in:
2026-02-07 19:44:28 +00:00
parent d8ce73439e
commit 7eec6d19e5

29
main.js
View File

@@ -35,16 +35,8 @@ const {
const { initRepo, commitAndPush, getBranches, getCommitLogs } = require('./src/git/gitHandler.js'); const { initRepo, commitAndPush, getBranches, getCommitLogs } = require('./src/git/gitHandler.js');
// NOTE: credentials/data location is computed via getDataDir() to avoid calling app.getPath before ready // NOTE: credentials/data location is computed via getDataDir() to avoid calling app.getPath before ready
function getDataDir() {
try {
return ppath.join(app.getPath('userData'), 'data');
} catch (e) {
// Fallback: use __dirname/data (only if app.getPath not available)
return ppath.join(__dirname, 'data');
}
}
function getCredentialsFilePath() { function getCredentialsFilePath() {
return ppath.join(getDataDir(), 'credentials.json'); return ppath.join(app.getPath('userData'), 'credentials.json');
} }
const ALGORITHM = 'aes-256-cbc'; const ALGORITHM = 'aes-256-cbc';
@@ -188,25 +180,24 @@ ipcMain.handle('select-folder', async () => {
ipcMain.handle('select-file', async () => { ipcMain.handle('select-file', async () => {
const result = await dialog.showOpenDialog({ properties: ['openFile', 'multiSelections'] }); const result = await dialog.showOpenDialog({ properties: ['openFile', 'multiSelections'] });
if (result.canceled) return { ok: false, files: [] }; if (result.canceled) return { ok: false, files: [] };
return { ok: true, files: result.filePaths };
// Rückgabe mit path und name für jede Datei
const files = result.filePaths.map(filePath => ({
path: filePath,
name: ppath.basename(filePath)
}));
return { ok: true, files };
}); });
ipcMain.handle('save-credentials', async (event, data) => { ipcMain.handle('save-credentials', async (event, data) => {
try { try {
const DATA_DIR = getDataDir();
const CREDENTIALS_FILE = getCredentialsFilePath(); const CREDENTIALS_FILE = getCredentialsFilePath();
ensureDir(DATA_DIR); // robust gegen ENOTDIR // ✅ Stelle sicher dass das userData Verzeichnis existiert
const userDataDir = app.getPath('userData');
if (!fs.existsSync(userDataDir)) {
fs.mkdirSync(userDataDir, { recursive: true });
}
const json = JSON.stringify(data); const json = JSON.stringify(data);
const cipher = crypto.createCipheriv(ALGORITHM, SECRET_KEY, IV); const cipher = crypto.createCipheriv(ALGORITHM, SECRET_KEY, IV);
const encrypted = Buffer.concat([cipher.update(json, 'utf8'), cipher.final()]); const encrypted = Buffer.concat([cipher.update(json, 'utf8'), cipher.final()]);
fs.writeFileSync(CREDENTIALS_FILE, encrypted); fs.writeFileSync(CREDENTIALS_FILE, encrypted);
console.log('✅ Credentials gespeichert in:', CREDENTIALS_FILE);
return { ok: true }; return { ok: true };
} catch (e) { } catch (e) {
console.error('save-credentials error', e); console.error('save-credentials error', e);