legal-markdown-js
Version:
Node.js implementation of LegalMarkdown for processing legal documents with markdown and YAML - Complete feature parity with Ruby version
72 lines (63 loc) • 2.15 kB
JavaScript
/**
* Build script helper for handling environment-based paths
* This script loads path constants and provides them for build operations
*/
// Load .env file silently without dotenv messages
import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
const __dirname = path.dirname(fileURLToPath(import.meta.url));
// Parse .env manually to avoid dotenv messages
try {
const envPath = path.join(process.cwd(), '.env');
if (fs.existsSync(envPath)) {
const envContent = fs.readFileSync(envPath, 'utf8');
envContent.split('\n').forEach(line => {
const match = line.match(/^([^#=]+)=(.*)$/);
if (match) {
const key = match[1].trim();
const value = match[2].trim().replace(/^['"]|['"]$/g, '');
process.env[key] = value;
}
});
}
} catch (error) {
// Ignore errors, use defaults
}
// Get paths from environment with defaults
const PATHS = {
IMAGES_DIR: process.env.IMAGES_DIR?.trim() || 'src/assets/images',
STYLES_DIR: process.env.STYLES_DIR?.trim() || 'src/styles',
DEFAULT_INPUT_DIR: process.env.DEFAULT_INPUT_DIR?.trim() || 'input',
DEFAULT_OUTPUT_DIR: process.env.DEFAULT_OUTPUT_DIR?.trim() || 'output',
};
// Resolve absolute paths
const RESOLVED_PATHS = {
IMAGES_DIR: path.resolve(process.cwd(), PATHS.IMAGES_DIR),
STYLES_DIR: path.resolve(process.cwd(), PATHS.STYLES_DIR),
DEFAULT_INPUT_DIR: path.resolve(process.cwd(), PATHS.DEFAULT_INPUT_DIR),
DEFAULT_OUTPUT_DIR: path.resolve(process.cwd(), PATHS.DEFAULT_OUTPUT_DIR),
};
// Export for use in other scripts
export { PATHS, RESOLVED_PATHS };
// If called directly, print paths for shell scripts
if (import.meta.url === `file://${process.argv[1]}`) {
const command = process.argv[2];
switch (command) {
case 'images':
console.log(PATHS.IMAGES_DIR);
break;
case 'styles':
console.log(PATHS.STYLES_DIR);
break;
case 'input':
console.log(PATHS.DEFAULT_INPUT_DIR);
break;
case 'output':
console.log(PATHS.DEFAULT_OUTPUT_DIR);
break;
default:
console.log(JSON.stringify(PATHS, null, 2));
}
}