import * as plugins from './plugins.js'; // Base directories export const baseDir = process.cwd(); export const packageDir = plugins.path.join( plugins.smartpath.get.dirnameFromImportMetaUrl(import.meta.url), '../' ); // Configure data directory with environment variable or default to .nogit/data const DEFAULT_DATA_PATH = '.nogit/data'; export const dataDir = process.env.DATA_DIR ? process.env.DATA_DIR : plugins.path.join(baseDir, DEFAULT_DATA_PATH); // MTA directories export const keysDir = plugins.path.join(dataDir, 'keys'); export const dnsRecordsDir = plugins.path.join(dataDir, 'dns'); export const sentEmailsDir = plugins.path.join(dataDir, 'emails', 'sent'); export const receivedEmailsDir = plugins.path.join(dataDir, 'emails', 'received'); export const failedEmailsDir = plugins.path.join(dataDir, 'emails', 'failed'); // For failed emails export const logsDir = plugins.path.join(dataDir, 'logs'); // For logs // Email template directories export const emailTemplatesDir = plugins.path.join(dataDir, 'templates', 'email'); export const MtaAttachmentsDir = plugins.path.join(dataDir, 'attachments'); // For email attachments // Create directories if they don't exist export function ensureDirectories() { // Ensure data directories plugins.smartfile.fs.ensureDirSync(dataDir); plugins.smartfile.fs.ensureDirSync(keysDir); plugins.smartfile.fs.ensureDirSync(dnsRecordsDir); plugins.smartfile.fs.ensureDirSync(sentEmailsDir); plugins.smartfile.fs.ensureDirSync(receivedEmailsDir); plugins.smartfile.fs.ensureDirSync(failedEmailsDir); plugins.smartfile.fs.ensureDirSync(logsDir); // Ensure email template directories plugins.smartfile.fs.ensureDirSync(emailTemplatesDir); plugins.smartfile.fs.ensureDirSync(MtaAttachmentsDir); }