import java.io.*;
import java.util.HashMap;
import java.util.Map;
public class ConfigMirror {
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("Usage: java ConfigMirror <config_file> <output_file>");
return;
}
String configFile = args[0];
String outputFile = args[1];
Map<String, String> config = loadConfig(configFile);
Map<String, String> mirroredConfig = mirrorConfig(config);
try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile))) {
for (Map.Entry<String, String> entry : mirroredConfig.entrySet()) {
writer.write(entry.getKey() + "=" + entry.getValue());
writer.newLine();
}
} catch (IOException e) {
System.err.println("Error writing to file: " + e.getMessage());
}
}
private static Map<String, String> loadConfig(String filename) {
Map<String, String> config = new HashMap<>();
try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
String line;
while ((line = reader.readLine()) != null) {
String[] parts = line.split("=");
if (parts.length == 2) {
config.put(parts[0].trim(), parts[1].trim());
}
}
} catch (IOException e) {
System.err.println("Error reading config file: " + e.getMessage());
return new HashMap<>(); // Return empty config on error
}
return config;
}
private static Map<String, String> mirrorConfig(Map<String, String> config) {
Map<String, String> mirroredConfig = new HashMap<>(config); // Create a copy
// Define default values
Map<String, String> defaults = new HashMap<>();
defaults.put("param1", "default_value_1");
defaults.put("param2", "default_value_2");
defaults.put("param3", "default_value_3");
for (Map.Entry<String, String> entry : defaults.entrySet()) {
if (!mirroredConfig.containsKey(entry.getKey())) {
mirroredConfig.put(entry.getKey(), entry.getValue());
}
}
return mirroredConfig;
}
}
Add your comment