1. import java.io.*;
  2. import java.util.HashMap;
  3. import java.util.Map;
  4. public class ConfigMirror {
  5. public static void main(String[] args) {
  6. if (args.length != 2) {
  7. System.out.println("Usage: java ConfigMirror <config_file> <output_file>");
  8. return;
  9. }
  10. String configFile = args[0];
  11. String outputFile = args[1];
  12. Map<String, String> config = loadConfig(configFile);
  13. Map<String, String> mirroredConfig = mirrorConfig(config);
  14. try (BufferedWriter writer = new BufferedWriter(new FileWriter(outputFile))) {
  15. for (Map.Entry<String, String> entry : mirroredConfig.entrySet()) {
  16. writer.write(entry.getKey() + "=" + entry.getValue());
  17. writer.newLine();
  18. }
  19. } catch (IOException e) {
  20. System.err.println("Error writing to file: " + e.getMessage());
  21. }
  22. }
  23. private static Map<String, String> loadConfig(String filename) {
  24. Map<String, String> config = new HashMap<>();
  25. try (BufferedReader reader = new BufferedReader(new FileReader(filename))) {
  26. String line;
  27. while ((line = reader.readLine()) != null) {
  28. String[] parts = line.split("=");
  29. if (parts.length == 2) {
  30. config.put(parts[0].trim(), parts[1].trim());
  31. }
  32. }
  33. } catch (IOException e) {
  34. System.err.println("Error reading config file: " + e.getMessage());
  35. return new HashMap<>(); // Return empty config on error
  36. }
  37. return config;
  38. }
  39. private static Map<String, String> mirrorConfig(Map<String, String> config) {
  40. Map<String, String> mirroredConfig = new HashMap<>(config); // Create a copy
  41. // Define default values
  42. Map<String, String> defaults = new HashMap<>();
  43. defaults.put("param1", "default_value_1");
  44. defaults.put("param2", "default_value_2");
  45. defaults.put("param3", "default_value_3");
  46. for (Map.Entry<String, String> entry : defaults.entrySet()) {
  47. if (!mirroredConfig.containsKey(entry.getKey())) {
  48. mirroredConfig.put(entry.getKey(), entry.getValue());
  49. }
  50. }
  51. return mirroredConfig;
  52. }
  53. }

Add your comment