mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00
89 lines
2.2 KiB
Dart
89 lines
2.2 KiB
Dart
// Copyright 2014 The Flutter Authors. 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:file/file.dart';
|
|
import 'package:file/local.dart';
|
|
import 'package:platform/platform.dart';
|
|
|
|
const String kIncrement = 'increment';
|
|
const String kCommit = 'commit';
|
|
const String kRemoteName = 'remote';
|
|
const String kJustPrint = 'just-print';
|
|
const String kYes = 'yes';
|
|
const String kForce = 'force';
|
|
const String kSkipTagging = 'skip-tagging';
|
|
|
|
const String kUpstreamRemote = 'https://github.com/flutter/flutter.git';
|
|
|
|
const List<String> kReleaseChannels = <String>[
|
|
'stable',
|
|
'beta',
|
|
'dev',
|
|
'master',
|
|
];
|
|
|
|
/// Cast a dynamic to String and trim.
|
|
String stdoutToString(dynamic input) {
|
|
final String str = input as String;
|
|
return str.trim();
|
|
}
|
|
|
|
class ConductorException implements Exception {
|
|
ConductorException(this.message);
|
|
|
|
final String message;
|
|
|
|
@override
|
|
String toString() => 'Exception: $message';
|
|
}
|
|
|
|
Directory _flutterRoot;
|
|
Directory get localFlutterRoot {
|
|
if (_flutterRoot != null) {
|
|
return _flutterRoot;
|
|
}
|
|
String filePath;
|
|
const FileSystem fileSystem = LocalFileSystem();
|
|
const Platform platform = LocalPlatform();
|
|
|
|
// If a test
|
|
if (platform.script.scheme == 'data') {
|
|
final RegExp pattern = RegExp(
|
|
r'(file:\/\/[^"]*[/\\]dev\/tools[/\\][^"]+\.dart)',
|
|
multiLine: true,
|
|
);
|
|
final Match match =
|
|
pattern.firstMatch(Uri.decodeFull(platform.script.path));
|
|
if (match == null) {
|
|
throw Exception(
|
|
'Cannot determine path of script!\n${platform.script.path}',
|
|
);
|
|
}
|
|
filePath = Uri.parse(match.group(1)).path.replaceAll(r'%20', ' ');
|
|
} else {
|
|
filePath = platform.script.toFilePath();
|
|
}
|
|
final String checkoutsDirname = fileSystem.path.normalize(
|
|
fileSystem.path.join(
|
|
fileSystem.path.dirname(filePath),
|
|
'..', // flutter/dev/tools
|
|
'..', // flutter/dev
|
|
'..', // flutter
|
|
),
|
|
);
|
|
_flutterRoot = fileSystem.directory(checkoutsDirname);
|
|
return _flutterRoot;
|
|
}
|
|
|
|
bool assertsEnabled() {
|
|
// Verify asserts enabled
|
|
bool assertsEnabled = false;
|
|
|
|
assert(() {
|
|
assertsEnabled = true;
|
|
return true;
|
|
}());
|
|
return assertsEnabled;
|
|
}
|