1. import java.io.File;
  2. import java.io.IOException;
  3. import java.nio.file.Files;
  4. import java.nio.file.Path;
  5. import java.nio.file.Paths;
  6. public class ArtifactCleanup {
  7. /**
  8. * Cleans up artifacts of binary files for dry-run scenarios.
  9. * Handles potential exceptions gracefully.
  10. * @param artifactDirectory The directory containing the artifacts to clean up.
  11. * @return True if cleanup was successful, false otherwise.
  12. */
  13. public static boolean cleanupArtifacts(String artifactDirectory) {
  14. if (artifactDirectory == null || artifactDirectory.isEmpty()) {
  15. System.err.println("Error: Artifact directory cannot be null or empty.");
  16. return false;
  17. }
  18. Path artifactPath = Paths.get(artifactDirectory);
  19. if (!Files.exists(artifactPath)) {
  20. System.err.println("Error: Artifact directory does not exist: " + artifactDirectory);
  21. return false;
  22. }
  23. try {
  24. File directory = artifactPath.toFile();
  25. File[] files = directory.listFiles();
  26. if (files != null) {
  27. for (File file : files) {
  28. if (file.isFile()) {
  29. try {
  30. Files.delete(file.toPath());
  31. System.out.println("Deleted artifact: " + file.getAbsolutePath());
  32. } catch (IOException e) {
  33. System.err.println("Error deleting artifact " + file.getAbsolutePath() + ": " + e.getMessage());
  34. // Non-critical error, continue to next file.
  35. }
  36. } else if (file.isDirectory()) {
  37. try {
  38. Files.delete(file.toPath());
  39. System.out.println("Deleted directory: " + file.getAbsolutePath());
  40. } catch (IOException e) {
  41. System.err.println("Error deleting directory " + file.getAbsolutePath() + ": " + e.getMessage());
  42. // Non-critical error, continue to next directory.
  43. }
  44. }
  45. }
  46. }
  47. } catch (IOException e) {
  48. System.err.println("Error listing artifacts in directory " + artifactDirectory + ": " + e.getMessage());
  49. return false;
  50. }
  51. return true;
  52. }
  53. public static void main(String[] args) {
  54. // Example usage:
  55. String artifactDirectory = "temp_artifacts"; // Replace with your artifact directory
  56. // Create the directory if it doesn't exist (for testing)
  57. File artifactDir = new File(artifactDirectory);
  58. if (!artifactDir.exists()) {
  59. artifactDir.mkdir();
  60. // Create some dummy files/directories for testing
  61. File dummyFile = new File(artifactDirectory, "test_file.dat");
  62. dummyFile.createNewFile();
  63. File dummyDir = new File(artifactDirectory, "test_dir");
  64. dummyDir.mkdir();
  65. }
  66. boolean success = cleanupArtifacts(artifactDirectory);
  67. if (success) {
  68. System.out.println("Artifact cleanup completed successfully.");
  69. } else {
  70. System.err.println("Artifact cleanup failed.");
  71. }
  72. // Clean up the test directory (optional)
  73. // File artifactDir = new File(artifactDirectory);
  74. // artifactDir.delete();
  75. }
  76. }

Add your comment