mirror of
				https://github.com/zulip/zulip-desktop.git
				synced 2025-11-04 05:53:21 +00:00 
			
		
		
		
	This commit moves all the configuration(.json) files into a config folder if the config folder doesn't already exist. It also updates the places where these files are being accessed with the new address. This will help us zip the folder easily in the future.
		
			
				
	
	
		
			79 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const fs = require('fs');
 | 
						|
 | 
						|
let app = null;
 | 
						|
let setupCompleted = false;
 | 
						|
if (process.type === 'renderer') {
 | 
						|
	app = require('electron').remote.app;
 | 
						|
} else {
 | 
						|
	app = require('electron').app;
 | 
						|
}
 | 
						|
 | 
						|
const zulipDir = app.getPath('userData');
 | 
						|
const logDir = `${zulipDir}/Logs/`;
 | 
						|
const certificatesDir = `${zulipDir}/certificates/`;
 | 
						|
const configDir = `${zulipDir}/config/`;
 | 
						|
const initSetUp = () => {
 | 
						|
	// if it is the first time the app is running
 | 
						|
	// create zulip dir in userData folder to
 | 
						|
	// avoid errors
 | 
						|
	if (!setupCompleted) {
 | 
						|
		if (!fs.existsSync(zulipDir)) {
 | 
						|
			fs.mkdirSync(zulipDir);
 | 
						|
		}
 | 
						|
 | 
						|
		if (!fs.existsSync(logDir)) {
 | 
						|
			fs.mkdirSync(logDir);
 | 
						|
		}
 | 
						|
 | 
						|
		if (!fs.existsSync(certificatesDir)) {
 | 
						|
			fs.mkdirSync(certificatesDir);
 | 
						|
		}
 | 
						|
 | 
						|
		// Migrate config files from app data folder to config folder inside app
 | 
						|
		// data folder. This will be done once when a user updates to the new version.
 | 
						|
		if (!fs.existsSync(configDir)) {
 | 
						|
			fs.mkdirSync(configDir);
 | 
						|
			const domainJson = `${zulipDir}/domain.json`;
 | 
						|
			const certificatesJson = `${zulipDir}/certificates.json`;
 | 
						|
			const settingsJson = `${zulipDir}/settings.json`;
 | 
						|
			const updatesJson = `${zulipDir}/updates.json`;
 | 
						|
			const windowStateJson = `${zulipDir}/window-state.json`;
 | 
						|
			const configData = [
 | 
						|
				{
 | 
						|
					path: domainJson,
 | 
						|
					fileName: `domain.json`
 | 
						|
				},
 | 
						|
				{
 | 
						|
					path: certificatesJson,
 | 
						|
					fileName: `certificates.json`
 | 
						|
				},
 | 
						|
				{
 | 
						|
					path: settingsJson,
 | 
						|
					fileName: `settings.json`
 | 
						|
				},
 | 
						|
				{
 | 
						|
					path: updatesJson,
 | 
						|
					fileName: `updates.json`
 | 
						|
				}
 | 
						|
			];
 | 
						|
			configData.forEach(data => {
 | 
						|
				if (fs.existsSync(data.path)) {
 | 
						|
					fs.copyFileSync(data.path, configDir + data.fileName);
 | 
						|
					fs.unlinkSync(data.path);
 | 
						|
				}
 | 
						|
			});
 | 
						|
			// window-state.json is only deleted not moved, as the electron-window-state
 | 
						|
			// package will recreate the file in the config folder.
 | 
						|
			if (fs.existsSync(windowStateJson)) {
 | 
						|
				fs.unlinkSync(windowStateJson);
 | 
						|
			}
 | 
						|
		}
 | 
						|
 | 
						|
		setupCompleted = true;
 | 
						|
	}
 | 
						|
};
 | 
						|
 | 
						|
module.exports = {
 | 
						|
	initSetUp
 | 
						|
};
 |