Fil-C on Nix

Filnix wiki

mbrock/filnix

scripts/audit-port-versions.nix

Evaluate the active declarations, rather than the historical patches.nix table.

λroot, system?
root
systemdefault "x86_64-linux"
let
7flake=
builtins.getFlake"git+file://${root}"
used by filc pkgs
8pkgs=
importflake.inputs.nixpkgs inherit system;
9filc=
flake.legacyPackages.${system}.pkgsFilc
uses flake used by filcValue ports value
10ports=
importbuiltins.toPath"${root}/ports.nix"
11inherit
pkgs
12prev=
13final=
uses filc used by specs
15specs=
builtins.listToAttrs
pkgs.lib.concatMap
λitem
item ? pname
→
21name=
item.pname
22value=
else
pkgs.lib.mapAttrsToListname: value: inherit name value; item
uses pkgs ports
29record=
λname spec
let
32custom=
spec ? __customDrv
used by attrs value
33attrs=
if custom then { } else spec.attrspkgs.${name}
uses custom pkgs used by value
34nativeValue=
pkgs.${name}.version or null
uses pkgs used by nativeVersion
35filcValue=
filc.${name}.version or null
uses filc used by version
36nativeVersion=
if nativeValue ≡ null then null else toStringnativeValue
uses nativeValue used by value
37version=
if filcValue ≡ null then null else toStringfilcValue
uses filcValue used by value
38value=
39inherit
name version nativeVersion custom
45pname=
filc.${name}.pname or name
46versionOverride=
custom ∨ attrs ? version
47sourceOverride=
custom ∨ attrs ? src
48patches=
maptoString filc.${name}.patches or [ ]
49comparison=
nativeVersion ≡ null ∨ version ≡ null
→
"custom"
→
"same"
pkgs.lib.versionOlderversion nativeVersion
→
"older"
else
"newer"
59result=
builtins.tryEvalbuiltins.deepSeqvalue value
uses value
in
result.success
→
result.value
else
65inherit
name
66error=
"evaluation failed"
in
pkgs.lib.mapAttrsToListrecord specs