1#!/usr/bin/env -S nix-instantiate --eval --strict --json --arg unused true
2# Unused argument to trigger nix-instantiate calling this function with the default arguments.
3{
4 pinnedJson ? ./pinned.json,
5}:
6let
7 pinned = (builtins.fromJSON (builtins.readFile pinnedJson)).pins;
8 nixpkgs = fetchTarball {
9 inherit (pinned.nixpkgs) url;
10 sha256 = pinned.nixpkgs.hash;
11 };
12 pkgs = import nixpkgs {
13 config.allowAliases = false;
14 };
15
16 inherit (pkgs) lib;
17
18 lix = lib.pipe pkgs.lixPackageSets [
19 (lib.filterAttrs (_: set: lib.isDerivation set.lix or null && set.lix.meta.available))
20 lib.attrNames
21 (lib.filter (name: lib.match "lix_[0-9_]+|git" name != null))
22 (map (name: "lixPackageSets.${name}.lix"))
23 ];
24
25 nix = lib.pipe pkgs.nixVersions [
26 (lib.filterAttrs (_: drv: lib.isDerivation drv && drv.meta.available))
27 lib.attrNames
28 (lib.filter (name: lib.match "nix_[0-9_]+|git" name != null))
29 (map (name: "nixVersions.${name}"))
30 ];
31in
32lix ++ nix