nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at devShellTools-shell 47 lines 1.3 kB view raw
1{ pkgs, ... }: 2{ 3 name = "all-terminfo"; 4 meta = with pkgs.lib.maintainers; { 5 maintainers = [ jkarlson ]; 6 }; 7 8 nodes.machine = 9 { 10 pkgs, 11 config, 12 lib, 13 ... 14 }: 15 let 16 infoFilter = 17 name: drv: 18 let 19 o = builtins.tryEval drv; 20 in 21 o.success 22 && lib.isDerivation o.value 23 && o.value ? outputs 24 && builtins.elem "terminfo" o.value.outputs 25 && !o.value.meta.broken 26 && lib.meta.availableOn pkgs.stdenv.hostPlatform o.value; 27 terminfos = lib.filterAttrs infoFilter pkgs; 28 excludedTerminfos = lib.filterAttrs ( 29 _: drv: !(builtins.elem drv.terminfo config.environment.systemPackages) 30 ) terminfos; 31 includedOuts = lib.filterAttrs ( 32 _: drv: builtins.elem drv.out config.environment.systemPackages 33 ) terminfos; 34 in 35 { 36 environment = { 37 enableAllTerminfo = true; 38 etc."terminfo-missing".text = builtins.concatStringsSep "\n" (builtins.attrNames excludedTerminfos); 39 etc."terminfo-extra-outs".text = builtins.concatStringsSep "\n" (builtins.attrNames includedOuts); 40 }; 41 }; 42 43 testScript = '' 44 machine.fail("grep . /etc/terminfo-missing >&2") 45 machine.fail("grep . /etc/terminfo-extra-outs >&2") 46 ''; 47}