47 lines
1.9 KiB
TypeScript
47 lines
1.9 KiB
TypeScript
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
|
|
|
|
// Configuration path
|
|
export const configPath = process.env.CONFIG_PATH
|
|
? process.env.CONFIG_PATH
|
|
: plugins.path.join(baseDir, 'config.json');
|
|
|
|
// 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);
|
|
} |