loadConfig method

Future<FileMapperConfig> loadConfig({
  1. bool notifyIfCreated = true,
})

Loads the configuration from file.

Creates a default configuration file if none exists. notifyIfCreated - Whether to print a message if a new config file was created.

Returns a FileMapperConfig object containing the loaded or default configuration.

Implementation

Future<FileMapperConfig> loadConfig({bool notifyIfCreated = true}) async {
  final configFile = File(configFilePath);

  // If config doesn't exist, create it with defaults
  if (!await configFile.exists()) {
    final defaultConfig = FileMapperConfig.defaultConfig();
    await saveConfig(defaultConfig);

    if (notifyIfCreated) {
      print('Created default configuration file at: $configFilePath');
      print('You can edit this file to customize ignore patterns.');
    }

    return defaultConfig;
  }

  try {
    final jsonContent = await configFile.readAsString();
    final jsonMap = jsonDecode(jsonContent) as Map<String, dynamic>;
    return FileMapperConfig.fromJson(jsonMap);
  } catch (e) {
    print('Error reading config file: $e');
    print('Using default configuration instead.');
    return FileMapperConfig.defaultConfig();
  }
}