From dd5831cb36c1937c52b204fb2fc4d7a48a67664e Mon Sep 17 00:00:00 2001 From: Adam Barth Date: Fri, 8 Apr 2016 07:19:25 -0700 Subject: [PATCH] Run `pub get` if flutter_tools.stamp changes (#3206) This will help folks run pub get after they upgrade their flutter.git revision. --- packages/flutter_tools/lib/src/dart/pub.dart | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/packages/flutter_tools/lib/src/dart/pub.dart b/packages/flutter_tools/lib/src/dart/pub.dart index 49a173dce6f..90916149394 100644 --- a/packages/flutter_tools/lib/src/dart/pub.dart +++ b/packages/flutter_tools/lib/src/dart/pub.dart @@ -9,8 +9,21 @@ import 'package:path/path.dart' as path; import '../base/logger.dart'; import '../base/process.dart'; +import '../cache.dart'; import '../globals.dart'; +bool _shouldRunPubGet({ File pubSpecYaml, File dotPackages }) { + if (!dotPackages.existsSync()) + return true; + DateTime dotPackagesLastModified = dotPackages.lastModifiedSync(); + if (pubSpecYaml.lastModifiedSync().isAfter(dotPackagesLastModified)) + return true; + File flutterToolsStamp = new File(path.join(Cache.instance.getRoot().path, 'flutter_tools.stamp')); + if (flutterToolsStamp.lastModifiedSync().isAfter(dotPackagesLastModified)) + return true; + return false; +} + Future pubGet({ String directory, bool skipIfAbsent: false, @@ -30,7 +43,7 @@ Future pubGet({ return 1; } - if (!checkLastModified || !dotPackages.existsSync() || pubSpecYaml.lastModifiedSync().isAfter(dotPackages.lastModifiedSync())) { + if (!checkLastModified || _shouldRunPubGet(pubSpecYaml: pubSpecYaml, dotPackages: dotPackages)) { String command = upgrade ? 'upgrade' : 'get'; Status status = logger.startProgress("Running 'pub $command' in ${path.basename(directory)}..."); int code = await runCommandAndStreamOutput(