refactor: usa decisione di destinazione unificata per folder e zip
This commit is contained in:
@@ -1,9 +1,11 @@
|
||||
const fs = require('fs-extra');
|
||||
const path = require('path');
|
||||
const { findDestination, isCadFile } = require('./router');
|
||||
const { getDestinationDecision, isCadFile } = require('./router');
|
||||
const { buildDestinationIndex } = require('./destinationIndex');
|
||||
|
||||
async function processFolder(folder, config) {
|
||||
const entries = await fs.readdir(folder, { withFileTypes: true });
|
||||
const destinationIndex = await buildDestinationIndex(config?.destination);
|
||||
const result = {
|
||||
scanned: 0,
|
||||
copied: 0,
|
||||
@@ -25,15 +27,15 @@ async function processFolder(folder, config) {
|
||||
}
|
||||
|
||||
const src = path.join(folder, file);
|
||||
const destDir = findDestination(file, config);
|
||||
const decision = getDestinationDecision(file, config, destinationIndex);
|
||||
const destDir = decision.destination;
|
||||
|
||||
if (!destDir) {
|
||||
result.skipped += 1;
|
||||
result.details.push({ file, reason: 'Nessuna regola trovata' });
|
||||
result.details.push({ file, reason: decision.reason || 'Nessuna regola trovata' });
|
||||
continue;
|
||||
}
|
||||
|
||||
await fs.ensureDir(destDir);
|
||||
const dest = path.join(destDir, file);
|
||||
await fs.copy(src, dest, { overwrite: true });
|
||||
|
||||
|
||||
Reference in New Issue
Block a user