flutter: Make it possible to override `operatingSystem` internally

Makes it possible to get artifact hashes for other system platforms.

Useful for an update script.

FlafyDev b73ceb1c da6757fd

Changed files
+19
pkgs
development
compilers
+6
pkgs/development/compilers/flutter/artifacts/fetch-artifacts.nix
···
nativeBuildInputs = [ xorg.lndir flutter' unzip ];
NIX_FLUTTER_TOOLS_VM_OPTIONS = "--root-certs-file=${cacert}/etc/ssl/certs/ca-bundle.crt";
+
NIX_FLUTTER_OPERATING_SYSTEM = {
+
"x86_64-linux" = "linux";
+
"aarch64-linux" = "linux";
+
"x86_64-darwin" = "macos";
+
"aarch64-darwin" = "macos";
+
}.${systemPlatform};
outputHash = hash;
outputHashMode = "recursive";
+13
pkgs/development/compilers/flutter/patches/override-operating-system.patch
···
+
diff --git a/packages/flutter_tools/lib/src/base/platform.dart b/packages/flutter_tools/lib/src/base/platform.dart
+
index 45da89ad4c..2d79dbaece 100644
+
--- a/packages/flutter_tools/lib/src/base/platform.dart
+
+++ b/packages/flutter_tools/lib/src/base/platform.dart
+
@@ -132,7 +132,7 @@ class LocalPlatform extends Platform {
+
String get pathSeparator => io.Platform.pathSeparator;
+
+
@override
+
- String get operatingSystem => io.Platform.operatingSystem;
+
+ String get operatingSystem => io.Platform.environment['NIX_FLUTTER_OPERATING_SYSTEM'] ?? io.Platform.operatingSystem;
+
+
@override
+
String get operatingSystemVersion => io.Platform.operatingSystemVersion;