Files
sdk/pkg/analysis_server/tool/generate_analyzer_version.dart
T
Sam Rawlins 4ef2725654 Add an analyzer_testing package
We intend to publish and maintain this as a set of testing-related
utilities for the analyzer packages and for analyzer plugins.

Work towards https://github.com/dart-lang/sdk/issues/55660

See the doc: https://docs.google.com/document/d/1jRtd8B1ijPAP6Pz89HRnyIZXw2VMjaZx0vRZTpoNO84/edit?tab=t.0#heading=h.2sz41a544qhi

Change-Id: I2764b1357a932fa955060b26d78038997eaa9536
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/425080
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2025-05-02 06:58:49 -07:00

59 lines
1.9 KiB
Dart

// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
import 'dart:io';
import 'package:analyzer_testing/package_root.dart';
import 'package:analyzer_utilities/tools.dart';
import 'package:path/path.dart';
import 'package:yaml/yaml.dart';
void main() async {
await GeneratedContent.generateAll(
normalize(join(packageRoot, 'analysis_server')),
allTargets,
);
}
List<GeneratedContent> get allTargets {
return [
GeneratedFile('lib/src/plugin2/analyzer_version.g.dart', (_) async {
var buffer = StringBuffer('''
// Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.
// THIS FILE IS GENERATED. DO NOT EDIT.
//
// Instead, run 'dart pkg/analysis_server/tool/generate_analyzer_version.dart'
// to update this file.
''');
var analyzerPluginVersion = versionFromPubspec(
normalize(join(packageRoot, 'analyzer_plugin', 'pubspec.yaml')),
);
var analyzerVersion = versionFromPubspec(
normalize(join(packageRoot, 'analyzer', 'pubspec.yaml')),
);
buffer.write('''
/// The version of the analyzer_plugin package that matches the analyzer_plugin
/// code used by the analysis_server package.
var analyzerPluginVersion = '$analyzerPluginVersion';
/// The version of the analyzer package that matches the analyzer code used by
/// the analysis_server package.
var analyzerVersion = '$analyzerVersion';
''');
return buffer.toString();
}),
];
}
String versionFromPubspec(String pubspecPath) {
var pubspec = loadYaml(File(pubspecPath).readAsStringSync());
return (pubspec as YamlMap)['version'] as String;
}