🥂 Initial commit
This commit is contained in:
34
tools/tasks/copy-to.js
Normal file
34
tools/tasks/copy-to.js
Normal file
@@ -0,0 +1,34 @@
|
||||
import fs from 'fs';
|
||||
import path from 'path';
|
||||
import { Logger } from '../utils/logger.js';
|
||||
|
||||
const logger = new Logger(copyTo.name, 'info', 'brightYellow');
|
||||
|
||||
export async function copyTo(sourcePath, targetPath) {
|
||||
logger.info(`Copying ${sourcePath} to ${targetPath}`);
|
||||
await recursiveCopy(sourcePath, targetPath);
|
||||
logger.info(`Copy has finished!`);
|
||||
}
|
||||
|
||||
async function recursiveCopy(sourcePath, targetPath) {
|
||||
// Create the target directory if it doesn't exist
|
||||
if (!fs.existsSync(targetPath)) {
|
||||
fs.mkdirSync(targetPath, { recursive: true });
|
||||
}
|
||||
|
||||
// Get all files and directories in the source path
|
||||
const files = fs.readdirSync(sourcePath, { withFileTypes: true });
|
||||
|
||||
for (const file of files) {
|
||||
const sourceFile = path.join(sourcePath, file.name);
|
||||
const targetFile = path.join(targetPath, file.name);
|
||||
|
||||
if (file.isDirectory()) {
|
||||
// Recursively copy directories
|
||||
await recursiveCopy(sourceFile, targetFile);
|
||||
} else {
|
||||
// Copy files
|
||||
fs.copyFileSync(sourceFile, targetFile);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user