Index: sdk/lib/_internal/pub_generated/lib/src/sdk.dart |
diff --git a/sdk/lib/_internal/pub_generated/lib/src/sdk.dart b/sdk/lib/_internal/pub_generated/lib/src/sdk.dart |
index 5a49dfcd60e342b4a53280d07fd8b869c793c32f..ccf767be372ebb08a7f1c1a2d32162897b822662 100644 |
--- a/sdk/lib/_internal/pub_generated/lib/src/sdk.dart |
+++ b/sdk/lib/_internal/pub_generated/lib/src/sdk.dart |
@@ -10,7 +10,27 @@ Version version = _getVersion(); |
Version _getVersion() { |
var sdkVersion = Platform.environment["_PUB_TEST_SDK_VERSION"]; |
if (sdkVersion != null) return new Version.parse(sdkVersion); |
- var revisionPath = path.join(_rootDirectory, "version"); |
- var version = readTextFile(revisionPath).trim(); |
+ if (runningFromSdk) { |
+ var version = readTextFile(path.join(_rootDirectory, "version")).trim(); |
+ return new Version.parse(version); |
+ } |
+ var contents = readTextFile(path.join(repoRoot, "tools/VERSION")); |
+ parseField(name) { |
+ var pattern = new RegExp("^$name ([a-z0-9]+)", multiLine: true); |
+ var match = pattern.firstMatch(contents); |
+ return match[1]; |
+ } |
+ var channel = parseField("CHANNEL"); |
+ var major = parseField("MAJOR"); |
+ var minor = parseField("MINOR"); |
+ var patch = parseField("PATCH"); |
+ var prerelease = parseField("PRERELEASE"); |
+ var prereleasePatch = parseField("PRERELEASE_PATCH"); |
+ var version = "$major.$minor.$patch"; |
+ if (channel == "be") { |
+ version += "-edge"; |
+ } else if (channel == "dev") { |
+ version += "-dev.$prerelease.$prereleasePatch"; |
+ } |
return new Version.parse(version); |
} |