1. /**
  2. * Cleans up artifacts related to URL lists.
  3. *
  4. * @param {object} options - Configuration options.
  5. * @param {boolean} options.force - Force cleanup even if artifacts are in use. Defaults to false.
  6. * @param {string} options.prefix - Prefix for artifact filenames. Defaults to "url_list_".
  7. * @param {string} options.directory - Directory containing artifacts. Defaults to "./artifacts".
  8. */
  9. function cleanupUrlListArtifacts(options = {}) {
  10. const force = options.force === true;
  11. const prefix = options.prefix || "url_list_";
  12. const directory = options.directory || "./artifacts";
  13. const fs = require('fs'); // Import the file system module
  14. try {
  15. const files = fs.readdirSync(directory); // Read directory contents synchronously
  16. for (const file of files) {
  17. if (file.startsWith(prefix)) {
  18. const filePath = `${directory}/${file}`;
  19. try {
  20. const stats = fs.statSync(filePath);
  21. if (stats.isFile()) {
  22. if (!force) {
  23. console.warn(`Skipping ${file} - in use.`); // Warn if in use and force is false
  24. } else {
  25. fs.unlinkSync(filePath); // Delete the file
  26. console.log(`Deleted: ${file}`);
  27. }
  28. }
  29. } catch (err) {
  30. console.error(`Error processing ${file}:`, err);
  31. }
  32. }
  33. }
  34. } catch (err) {
  35. console.error(`Error reading directory ${directory}:`, err);
  36. }
  37. }

Add your comment