updateGetCliYaml static method

bool updateGetCliYaml(
  1. String key,
  2. dynamic value, {
  3. bool logger = true,
})

Implementation

static bool updateGetCliYaml(
  String key,
  dynamic value, {
  bool logger = true,
}) {
  try {
    YamlMap? yaml;
    bool isGetCli = false;
    try {
      yaml = getCliJson as YamlMap?;
      isGetCli = true;
    } catch (e) {
      yaml = pubspecJson['get_cli'] as YamlMap?;
      isGetCli = false;
    }
    final entries = yaml?.entries;
    final yamlEditor = YamlEditor(
      isGetCli ? PubspecUtils.getCliString : PubspecUtils.pubspecString,
    );
    final List<Object?> path = isGetCli ? [] : ['get_cli'];
    final file =
        isGetCli ? PubspecUtils._getCliFile : PubspecUtils._pubspecFile;
    var newVaule = Map.fromEntries(entries ?? {})..[key] = value;
    // 创建一个 YamlEditor 来编辑 YAML 文件
    yamlEditor.update(path, newVaule);

    file.writeAsStringSync(yamlEditor.toString());
  } on Exception catch (_) {
    return false;
  }
  if (logger) {
    LogService.success(
      LocaleKeys.sucess_update_yaml.trArgs(['$key: $value']),
    );
  }
  return true;
}