fdb820602b
To reproduce:
$ nix run nixpkgs/3b32825de172d0bc85664f495edb096b10862524#ast-grep \
-- scan --update-all --inline-rules '
id: nix-x86_64-darwin
language: nix
rule:
any:
- pattern: "\"x86_64-darwin\""
kind: list_expression > string_expression
- pattern:
context: "{ \"x86_64-darwin\" = $EXPR; }"
selector: binding
- pattern:
context: "{ x86_64-darwin = $EXPR; }"
selector: binding
fix:
template: ""
' pkgs
$ nix run nixpkgs/3b32825de172d0bc85664f495edb096b10862524#ast-grep \
-- scan --update-all --inline-rules '
id: json-first-x86_64-darwin
language: json
rule:
kind: object > pair:nth-child(1)
has:
pattern: "\"x86_64-darwin\""
field: key
fix:
template: ""
expandEnd: { regex: "," }
' pkgs
$ nix run nixpkgs/3b32825de172d0bc85664f495edb096b10862524#ast-grep \
-- scan --update-all --inline-rules '
id: json-x86_64-darwin
language: json
rule:
kind: object > pair
has:
pattern: "\"x86_64-darwin\""
field: key
fix:
template: ""
expandStart: { regex: "," }
' pkgs
$ git restore pkgs/by-name/om/omnix/package.nix
$ git diff --name-only -z \
| nix shell nixpkgs/3b32825de172d0bc85664f495edb096b10862524#gnused \
-c xargs -0 sed -i '/^$/N; /^\n\? \+$/d'
$ treefmt
102 lines
2.5 KiB
Nix
102 lines
2.5 KiB
Nix
# Schema:
|
|
# ${flutterVersion}.${targetPlatform}.${hostPlatform}
|
|
#
|
|
# aarch64-darwin as a host is not yet supported.
|
|
# https://github.com/flutter/flutter/issues/60118
|
|
{
|
|
lib,
|
|
runCommand,
|
|
lndir,
|
|
cacert,
|
|
unzip,
|
|
|
|
flutterPlatform,
|
|
systemPlatform,
|
|
flutter,
|
|
hash,
|
|
}:
|
|
|
|
let
|
|
flutterPlatforms = [
|
|
"android"
|
|
"ios"
|
|
"web"
|
|
"linux"
|
|
"windows"
|
|
"macos"
|
|
"fuchsia"
|
|
"universal"
|
|
];
|
|
|
|
flutter' = flutter.override {
|
|
# Use a version of Flutter with just enough capabilities to download
|
|
# artifacts.
|
|
supportedTargetFlutterPlatforms = [ ];
|
|
|
|
# Modify flutter-tool's system platform in order to get the desired platform's hashes.
|
|
flutter = flutter.unwrapped.override {
|
|
flutterTools = flutter.unwrapped.tools.override {
|
|
inherit systemPlatform;
|
|
};
|
|
};
|
|
};
|
|
in
|
|
runCommand "flutter-artifacts-${flutterPlatform}-${systemPlatform}"
|
|
{
|
|
nativeBuildInputs = [
|
|
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";
|
|
"aarch64-darwin" = "macos";
|
|
}
|
|
.${systemPlatform};
|
|
|
|
outputHash = hash;
|
|
outputHashMode = "recursive";
|
|
outputHashAlgo = "sha256";
|
|
|
|
passthru = {
|
|
inherit flutterPlatform;
|
|
};
|
|
}
|
|
(
|
|
''
|
|
export FLUTTER_ROOT="$NIX_BUILD_TOP"
|
|
lndir -silent '${flutter'}' "$FLUTTER_ROOT"
|
|
rm --recursive --force "$FLUTTER_ROOT/bin/cache"
|
|
mkdir "$FLUTTER_ROOT/bin/cache"
|
|
mkdir "$FLUTTER_ROOT/bin/cache/dart-sdk"
|
|
lndir -silent '${flutter'}/bin/cache/dart-sdk' "$FLUTTER_ROOT/bin/cache/dart-sdk"
|
|
''
|
|
# Could not determine engine revision
|
|
+ lib.optionalString (lib.versionAtLeast flutter'.version "3.32") ''
|
|
cp '${flutter'}/bin/internal/engine.version' "$FLUTTER_ROOT/bin/cache/engine.stamp"
|
|
''
|
|
+ ''
|
|
|
|
HOME="$(mktemp -d)" flutter precache ${
|
|
lib.optionalString (
|
|
flutter ? engine && flutter.engine.meta.available
|
|
) "--local-engine ${flutter.engine.outName}"
|
|
} \
|
|
--verbose '--${flutterPlatform}' ${
|
|
builtins.concatStringsSep " " (map (p: "'--no-${p}'") (lib.remove flutterPlatform flutterPlatforms))
|
|
}
|
|
|
|
rm --recursive --force "$FLUTTER_ROOT/bin/cache/lockfile"
|
|
rm --recursive --force "$FLUTTER_ROOT/bin/cache/dart-sdk"
|
|
''
|
|
+ ''
|
|
find "$FLUTTER_ROOT" -type l -lname '${flutter'}/*' -delete
|
|
|
|
cp --recursive bin/cache "$out"
|
|
''
|
|
)
|