46 lines
1.4 KiB
JavaScript
46 lines
1.4 KiB
JavaScript
/**
|
|
* Script to copy required assets from ink.js project to AI Interactive Fiction
|
|
*/
|
|
|
|
const fs = require('fs');
|
|
const path = require('path');
|
|
|
|
// Define asset directories
|
|
const sourceDir = 'e:/Georg/vhosts/ink.js';
|
|
const targetDir = 'e:/Georg/vhosts/ai.interactive.fiction/public';
|
|
|
|
// Assets to copy
|
|
const assets = [
|
|
{ src: 'book-3057904.png', dest: 'images/book-3057904.png' },
|
|
{ src: 'brown-wooden-flooring.jpg', dest: 'images/brown-wooden-flooring.jpg' },
|
|
{ src: 'EBGaramond12-Regular.otf', dest: 'fonts/EBGaramond12-Regular.otf' },
|
|
{ src: 'EBGaramond12-Italic.otf', dest: 'fonts/EBGaramond12-Italic.otf' }
|
|
];
|
|
|
|
// Create necessary directories
|
|
const directories = ['images', 'fonts', 'js', 'css'].map(dir => path.join(targetDir, dir));
|
|
directories.forEach(dir => {
|
|
if (!fs.existsSync(dir)) {
|
|
console.log(`Creating directory: ${dir}`);
|
|
fs.mkdirSync(dir, { recursive: true });
|
|
}
|
|
});
|
|
|
|
// Copy each asset
|
|
assets.forEach(asset => {
|
|
const source = path.join(sourceDir, asset.src);
|
|
const destination = path.join(targetDir, asset.dest);
|
|
|
|
try {
|
|
if (fs.existsSync(source)) {
|
|
fs.copyFileSync(source, destination);
|
|
console.log(`Successfully copied ${source} to ${destination}`);
|
|
} else {
|
|
console.error(`Source file does not exist: ${source}`);
|
|
}
|
|
} catch (error) {
|
|
console.error(`Error copying ${source}:`, error.message);
|
|
}
|
|
});
|
|
|
|
console.log('Asset copying completed.'); |