From c00d61f6ecc2e79faf735be6bcbb6f18cda3a056 Mon Sep 17 00:00:00 2001 From: Devon Carew Date: Fri, 8 Apr 2016 10:25:30 -0700 Subject: [PATCH] have flutter precache print if there's no work to do (#3213) * have flutter precache print if there's no work to do * tweak precache --- packages/flutter_tools/lib/src/cache.dart | 24 +++++++++++++------ .../lib/src/commands/precache.dart | 8 +++++-- packages/flutter_tools/lib/src/dart/pub.dart | 2 +- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/packages/flutter_tools/lib/src/cache.dart b/packages/flutter_tools/lib/src/cache.dart index 712d1272ad..4a288236ed 100644 --- a/packages/flutter_tools/lib/src/cache.dart +++ b/packages/flutter_tools/lib/src/cache.dart @@ -38,19 +38,29 @@ class Cache { return new Directory(path.join(getCacheArtifacts().path, name)); } - String getVersionFor(String kArtifactName) { - File versionFile = new File(path.join(getRoot().path, '$kArtifactName.version')); + String getVersionFor(String artifactName) { + File versionFile = new File(path.join(getRoot().path, '$artifactName.version')); return versionFile.existsSync() ? versionFile.readAsStringSync().trim() : null; } - String getStampFor(String kArtifactName) { - File stampFile = new File(path.join(getRoot().path, '$kArtifactName.stamp')); + String getStampFor(String artifactName) { + File stampFile = getStampFileFor(artifactName); return stampFile.existsSync() ? stampFile.readAsStringSync().trim() : null; } - void setStampFor(String kArtifactName, String version) { - File stampFile = new File(path.join(getRoot().path, '$kArtifactName.stamp')); - stampFile.writeAsStringSync(version); + void setStampFor(String artifactName, String version) { + getStampFileFor(artifactName).writeAsStringSync(version); + } + + File getStampFileFor(String artifactName) { + return new File(path.join(getRoot().path, '$artifactName.stamp')); + } + + bool isUpToDate() { + MaterialFonts materialFonts = new MaterialFonts(cache); + FlutterEngine engine = new FlutterEngine(cache); + + return materialFonts.isUpToDate() && engine.isUpToDate(); } Future getThirdPartyFile(String urlStr, String serviceName, { diff --git a/packages/flutter_tools/lib/src/commands/precache.dart b/packages/flutter_tools/lib/src/commands/precache.dart index 2587f6248b..3a26b34bfc 100644 --- a/packages/flutter_tools/lib/src/commands/precache.dart +++ b/packages/flutter_tools/lib/src/commands/precache.dart @@ -6,7 +6,7 @@ import 'dart:async'; import 'package:args/command_runner.dart'; -import '../cache.dart'; +import '../globals.dart'; class PrecacheCommand extends Command { @override @@ -17,7 +17,11 @@ class PrecacheCommand extends Command { @override Future run() async { - await Cache.instance.updateAll(); + if (cache.isUpToDate()) + printStatus('All up-to-date.'); + else + await cache.updateAll(); + return 0; } } diff --git a/packages/flutter_tools/lib/src/dart/pub.dart b/packages/flutter_tools/lib/src/dart/pub.dart index 9091614939..c0d4b4fae1 100644 --- a/packages/flutter_tools/lib/src/dart/pub.dart +++ b/packages/flutter_tools/lib/src/dart/pub.dart @@ -18,7 +18,7 @@ bool _shouldRunPubGet({ File pubSpecYaml, File dotPackages }) { DateTime dotPackagesLastModified = dotPackages.lastModifiedSync(); if (pubSpecYaml.lastModifiedSync().isAfter(dotPackagesLastModified)) return true; - File flutterToolsStamp = new File(path.join(Cache.instance.getRoot().path, 'flutter_tools.stamp')); + File flutterToolsStamp = Cache.instance.getStampFileFor('flutter_tools'); if (flutterToolsStamp.lastModifiedSync().isAfter(dotPackagesLastModified)) return true; return false;