blob: 8b30de2c18240c298aed7797e41ccc16a0f8e22a [file] [log] [blame]
// Copyright (c) 2026, 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 'package:platform/platform.dart' as platform;
import 'package:unified_analytics/unified_analytics.dart';
DashTool? get topLevelTool {
var toolValue = _readEnv(DashEnvVar.tool.name);
if (toolValue != null) {
try {
return DashTool.fromLabel(toolValue);
} on Exception {
// Unsupported tools are skipped.
// We could consider logging or crash-reporting but we can't collect
// analytics since telemetry for an unknown tool can't be opted into.
}
}
return null;
}
Map<String, String> get _locaEnvironment =>
const platform.LocalPlatform().environment;
/// Returns a copy of the current environment with the given analytics values set.
Map<String, String> map({
required DashTool? tool,
required bool suppressAnalytics,
}) => <String, String>{
..._locaEnvironment,
DashEnvVar.suppressAnalytics.name: suppressAnalytics.toString(),
if (tool != null) DashEnvVar.tool.name: tool.label,
};
String? _readEnv(String key) => _locaEnvironment[key];