/**
* Cleans up artifacts related to URL lists.
*
* @param {object} options - Configuration options.
* @param {boolean} options.force - Force cleanup even if artifacts are in use. Defaults to false.
* @param {string} options.prefix - Prefix for artifact filenames. Defaults to "url_list_".
* @param {string} options.directory - Directory containing artifacts. Defaults to "./artifacts".
*/
function cleanupUrlListArtifacts(options = {}) {
const force = options.force === true;
const prefix = options.prefix || "url_list_";
const directory = options.directory || "./artifacts";
const fs = require('fs'); // Import the file system module
try {
const files = fs.readdirSync(directory); // Read directory contents synchronously
for (const file of files) {
if (file.startsWith(prefix)) {
const filePath = `${directory}/${file}`;
try {
const stats = fs.statSync(filePath);
if (stats.isFile()) {
if (!force) {
console.warn(`Skipping ${file} - in use.`); // Warn if in use and force is false
} else {
fs.unlinkSync(filePath); // Delete the file
console.log(`Deleted: ${file}`);
}
}
} catch (err) {
console.error(`Error processing ${file}:`, err);
}
}
}
} catch (err) {
console.error(`Error reading directory ${directory}:`, err);
}
}
Add your comment