1. import java.io.*;
  2. import java.util.*;
  3. public class ConfigGrouper {
  4. public static void main(String[] args) {
  5. if (args.length != 2) {
  6. System.out.println("Usage: java ConfigGrouper <config_file_path> <output_directory>");
  7. return;
  8. }
  9. String configFilePath = args[0];
  10. String outputDirectory = args[1];
  11. try {
  12. groupConfigs(configFilePath, outputDirectory);
  13. } catch (IOException e) {
  14. System.err.println("Error processing config files: " + e.getMessage());
  15. }
  16. }
  17. public static void groupConfigs(String configFilePath, String outputDirectory) throws IOException {
  18. // Create the output directory if it doesn't exist
  19. File outputDir = new File(outputDirectory);
  20. if (!outputDir.exists()) {
  21. outputDir.mkdirs();
  22. }
  23. try (BufferedReader reader = new BufferedReader(new FileReader(configFilePath))) {
  24. String line;
  25. String currentEnvironment = null;
  26. List<String> currentConfigEntries = new ArrayList<>();
  27. while ((line = reader.readLine()) != null) {
  28. line = line.trim(); // Remove leading/trailing whitespace
  29. if (line.startsWith("#")) { // Skip comments
  30. continue;
  31. }
  32. if (line.isEmpty()) { // Skip empty lines
  33. continue;
  34. }
  35. if (line.startsWith("environment=")) {
  36. // New environment detected
  37. if (currentEnvironment != null) {
  38. // Write the config entries for the previous environment
  39. writeConfigToFiles(currentEnvironment, currentConfigEntries, outputDirectory);
  40. }
  41. currentEnvironment = line.substring(9); // Extract the environment name
  42. currentConfigEntries = new ArrayList<>();
  43. } else {
  44. // Add the line to the current environment's config entries
  45. currentConfigEntries.add(line);
  46. }
  47. }
  48. // Write the last environment's config entries
  49. if (currentEnvironment != null) {
  50. writeConfigToFiles(currentEnvironment, currentConfigEntries, outputDirectory);
  51. }
  52. }
  53. }
  54. private static void writeConfigToFiles(String environment, List<String> configEntries, String outputDirectory) throws IOException {
  55. File outputFile = new File(outputDirectory + "/" + environment + ".config");
  56. try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile))) {
  57. for (String entry : configEntries) {
  58. writer.write(entry);
  59. writer.newLine();
  60. }
  61. }
  62. }
  63. }

Add your comment