You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
const electron = require('electron');
 | 
						|
const Attachments = require('../ts/attachments/attachments');
 | 
						|
const rimraf = require('rimraf');
 | 
						|
 | 
						|
const { ipcMain } = electron;
 | 
						|
 | 
						|
module.exports = {
 | 
						|
  initialize,
 | 
						|
};
 | 
						|
 | 
						|
let initialized = false;
 | 
						|
 | 
						|
const ERASE_ATTACHMENTS_KEY = 'erase-attachments';
 | 
						|
const CLEANUP_ORPHANED_ATTACHMENTS_KEY = 'cleanup-orphaned-attachments';
 | 
						|
 | 
						|
async function initialize({ configDir, cleanupOrphanedAttachments }) {
 | 
						|
  if (initialized) {
 | 
						|
    throw new Error('initialze: Already initialized!');
 | 
						|
  }
 | 
						|
  initialized = true;
 | 
						|
 | 
						|
  console.log('Ensure attachments directory exists');
 | 
						|
  await Attachments.ensureDirectory(configDir);
 | 
						|
 | 
						|
  const attachmentsDir = Attachments.getPath(configDir);
 | 
						|
 | 
						|
  ipcMain.on(ERASE_ATTACHMENTS_KEY, async event => {
 | 
						|
    try {
 | 
						|
      rimraf.sync(attachmentsDir);
 | 
						|
      event.sender.send(`${ERASE_ATTACHMENTS_KEY}-done`);
 | 
						|
    } catch (error) {
 | 
						|
      const errorForDisplay = error && error.stack ? error.stack : error;
 | 
						|
      console.log(`erase attachments error: ${errorForDisplay}`);
 | 
						|
      event.sender.send(`${ERASE_ATTACHMENTS_KEY}-done`, error);
 | 
						|
    }
 | 
						|
  });
 | 
						|
 | 
						|
  ipcMain.on(CLEANUP_ORPHANED_ATTACHMENTS_KEY, async event => {
 | 
						|
    try {
 | 
						|
      await cleanupOrphanedAttachments();
 | 
						|
      event.sender.send(`${CLEANUP_ORPHANED_ATTACHMENTS_KEY}-done`);
 | 
						|
    } catch (error) {
 | 
						|
      const errorForDisplay = error && error.stack ? error.stack : error;
 | 
						|
      console.log(`cleanup orphaned attachments error: ${errorForDisplay}`);
 | 
						|
      event.sender.send(`${CLEANUP_ORPHANED_ATTACHMENTS_KEY}-done`, error);
 | 
						|
    }
 | 
						|
  });
 | 
						|
}
 |