| // 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 'dart:io' hide Platform; |
| |
| const String gobMirror = 'https://flutter.googlesource.com/mirrors/flutter'; |
| const String githubRepo = 'https://github.com/flutter/flutter.git'; |
| const String mingitForWindowsUrl = |
| 'https://storage.googleapis.com/flutter_infra_release/mingit/' |
| '603511c649b00bbef0a6122a827ac419b656bc19/mingit.zip'; |
| const String releaseFolder = '/releases'; |
| const String gsBase = 'gs://flutter_infra_release'; |
| const String gsReleaseFolder = '$gsBase$releaseFolder'; |
| const String baseUrl = 'https://storage.googleapis.com/flutter_infra_release'; |
| const int shortCacheSeconds = 60; |
| const String frameworkVersionTag = 'frameworkVersionFromGit'; |
| const String dartVersionTag = 'dartSdkVersion'; |
| const String dartTargetArchTag = 'dartTargetArch'; |
| |
| enum Branch { beta, stable, master, main } |
| |
| /// Exception class for when a process fails to run, so we can catch |
| /// it and provide something more readable than a stack trace. |
| class PreparePackageException implements Exception { |
| PreparePackageException(this.message, [this.result]); |
| |
| final String message; |
| final ProcessResult? result; |
| int get exitCode => result?.exitCode ?? -1; |
| |
| @override |
| String toString() { |
| String output = runtimeType.toString(); |
| output += ': $message'; |
| final String stderr = result?.stderr as String? ?? ''; |
| if (stderr.isNotEmpty) { |
| output += ':\n$stderr'; |
| } |
| return output; |
| } |
| } |