import java.io.*;
import java.util.*;
public class ConfigGrouper {
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("Usage: java ConfigGrouper <config_file_path> <output_directory>");
return;
}
String configFilePath = args[0];
String outputDirectory = args[1];
try {
groupConfigs(configFilePath, outputDirectory);
} catch (IOException e) {
System.err.println("Error processing config files: " + e.getMessage());
}
}
public static void groupConfigs(String configFilePath, String outputDirectory) throws IOException {
// Create the output directory if it doesn't exist
File outputDir = new File(outputDirectory);
if (!outputDir.exists()) {
outputDir.mkdirs();
}
try (BufferedReader reader = new BufferedReader(new FileReader(configFilePath))) {
String line;
String currentEnvironment = null;
List<String> currentConfigEntries = new ArrayList<>();
while ((line = reader.readLine()) != null) {
line = line.trim(); // Remove leading/trailing whitespace
if (line.startsWith("#")) { // Skip comments
continue;
}
if (line.isEmpty()) { // Skip empty lines
continue;
}
if (line.startsWith("environment=")) {
// New environment detected
if (currentEnvironment != null) {
// Write the config entries for the previous environment
writeConfigToFiles(currentEnvironment, currentConfigEntries, outputDirectory);
}
currentEnvironment = line.substring(9); // Extract the environment name
currentConfigEntries = new ArrayList<>();
} else {
// Add the line to the current environment's config entries
currentConfigEntries.add(line);
}
}
// Write the last environment's config entries
if (currentEnvironment != null) {
writeConfigToFiles(currentEnvironment, currentConfigEntries, outputDirectory);
}
}
}
private static void writeConfigToFiles(String environment, List<String> configEntries, String outputDirectory) throws IOException {
File outputFile = new File(outputDirectory + "/" + environment + ".config");
try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile))) {
for (String entry : configEntries) {
writer.write(entry);
writer.newLine();
}
}
}
}
Add your comment