32 lines
1.0 KiB
JavaScript
32 lines
1.0 KiB
JavaScript
const fs = require('node:fs');
|
|
const path = require('node:path');
|
|
|
|
// Resolve the source directory (packages/brand/public)
|
|
const brandPublicDir = path.resolve(__dirname, '../public');
|
|
|
|
// Resolve the destination directory (public/brand folder in the calling app)
|
|
// process.cwd() points to the app folder (e.g., apps/web) when the script is executed
|
|
const destDir = path.resolve(process.cwd(), 'public', 'brand');
|
|
|
|
// Ensure the destination folder exists
|
|
if (!fs.existsSync(destDir)) {
|
|
fs.mkdirSync(destDir, { recursive: true });
|
|
}
|
|
|
|
// Copy files using fs.cpSync (Available in Node.js 16.7+)
|
|
try {
|
|
fs.cpSync(brandPublicDir, destDir, {
|
|
recursive: true,
|
|
force: true, // Overwrite files if they already exist
|
|
filter: (src) => {
|
|
const filename = path.basename(src);
|
|
// Exclude unwanted files
|
|
return !['.gitkeep', 'README.md'].includes(filename);
|
|
},
|
|
});
|
|
console.log(`✓ Brand assets successfully copied to ${destDir}`);
|
|
} catch (error) {
|
|
console.error(`❌ Failed to copy brand assets:`, error.message);
|
|
process.exit(1);
|
|
}
|