| 1 | { pkgs, ... }: |
| 2 | let |
| 3 | scriptDir = ./scripts; |
| 4 | |
| 5 | mkScript = name: { |
| 6 | inherit name; |
| 7 | value = pkgs.writeScriptBin (builtins.replaceStrings [ ".sh" ] [ "" ] name) ( |
| 8 | builtins.readFile (scriptDir + "/${name}") |
| 9 | ); |
| 10 | }; |
| 11 | |
| 12 | scriptsSet = builtins.listToAttrs ( |
| 13 | map mkScript ( |
| 14 | builtins.attrNames ( |
| 15 | pkgs.lib.filterAttrs (n: v: v == "regular" && (pkgs.lib.hasSuffix ".sh" n)) ( |
| 16 | builtins.readDir ./scripts |
| 17 | ) |
| 18 | ) |
| 19 | ) |
| 20 | ); |
| 21 | scripts = builtins.attrValues scriptsSet; |
| 22 | |
| 23 | in |
| 24 | { |
| 25 | home.packages = scripts; |
| 26 | } |