openvidu/testapp/scripts/copy-assets.js
2025-05-08 12:52:34 +02:00

58 lines
1.8 KiB
JavaScript

import fs from 'fs';
import path from 'path';
import { fileURLToPath } from 'url';
import { dirname } from 'path';
// Get directory name in ES modules
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
// Define paths
const projectRoot = path.join(__dirname, '..');
const viewsDir = path.join(projectRoot, 'public', 'views');
const distViewsDir = path.join(projectRoot, 'dist', 'public', 'views');
const cssDir = path.join(projectRoot, 'public', 'css');
const distCssDir = path.join(projectRoot, 'dist', 'testapp', 'public', 'css');
// Create dist directories if they don't exist
function ensureDirectoryExists(directory) {
if (!fs.existsSync(directory)) {
fs.mkdirSync(directory, { recursive: true });
console.log(`Created directory: ${directory}`);
}
}
// Copy files from source to destination
function copyFiles(sourceDir, destDir, extension) {
ensureDirectoryExists(destDir);
// Check if source directory exists
if (!fs.existsSync(sourceDir)) {
console.log(`Source directory does not exist: ${sourceDir}`);
return;
}
const files = fs.readdirSync(sourceDir).filter(file => file.endsWith(extension));
files.forEach(file => {
const sourcePath = path.join(sourceDir, file);
const destPath = path.join(destDir, file);
fs.copyFileSync(sourcePath, destPath);
console.log(`Copied ${sourcePath} to ${destPath}`);
});
console.log(`Copied ${files.length} ${extension} files`);
}
console.log('Starting asset copy process...');
// Copy view templates
console.log('Copying Mustache templates...');
copyFiles(viewsDir, distViewsDir, '.mustache');
// Copy CSS files
console.log('Copying CSS files...');
copyFiles(cssDir, distCssDir, '.css');
console.log('All static assets have been copied to dist.');