1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
{
  # list of package attribute names to get at run time
  packageNamesAtRuntimeJsonPath
,
}:
let
  pkgs = import <nixpkgs> { };

  getPkg = pkgName: pkgs.${pkgName};

  packageNamesAtRuntime = builtins.fromJSON (builtins.readFile packageNamesAtRuntimeJsonPath);

  runtime = map getPkg packageNamesAtRuntime;

in
pkgs.symlinkJoin {
  name = "symlink-farm";
  paths = runtime;
}