Upload main.js via GUI
This commit is contained in:
29
main.js
29
main.js
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user