|
8 | 8 |
|
9 | 9 | outputs = { self, nixpkgs, utils }: {
|
10 | 10 |
|
| 11 | + overlay = final: prev: |
| 12 | + let scripts = prev.callPackage ./scripts.nix { }; in |
| 13 | + { |
| 14 | + inherit (scripts) format update test-develop dvt; |
| 15 | + }; |
| 16 | + |
11 | 17 | templates = import ./templates.nix;
|
12 | 18 |
|
13 | 19 | } // utils.lib.eachDefaultSystem (system:
|
14 | 20 | let
|
15 |
| - pkgs = import nixpkgs { inherit system; }; |
16 |
| - |
17 |
| - inherit (pkgs) mkShell writeScriptBin; |
18 |
| - |
19 |
| - run = pkg: "${pkgs.${pkg}}/bin/${pkg}"; |
20 |
| - |
21 |
| - dvt = writeScriptBin "dvt" |
22 |
| - '' |
23 |
| - if [ -z $1 ]; then |
24 |
| - echo "no template specified" |
25 |
| - exit 1 |
26 |
| - fi |
27 |
| - TEMPLATE=$1 |
28 |
| - ${run "nix"} \ |
29 |
| - --experimental-features 'nix-command flakes' \ |
30 |
| - flake init \ |
31 |
| - --template \ |
32 |
| - "github:efishery/dvt#''${TEMPLATE}" |
33 |
| - ''; |
34 |
| - |
35 |
| - format = writeScriptBin "format" |
36 |
| - '' |
37 |
| - ${run "nixpkgs-fmt"} **/*.nix |
38 |
| - ''; |
39 |
| - |
40 |
| - update = writeScriptBin "update" |
41 |
| - '' |
42 |
| - for dir in `ls -d */`; do |
43 |
| - ( |
44 |
| - cd $dir |
45 |
| - ${run "nix"} flake update # Update flake.lock |
46 |
| - ${run "nix"} develop $dir # Make sure this work after update |
47 |
| - ) |
48 |
| - done |
49 |
| - ''; |
50 |
| - |
51 |
| - test-develop = writeScriptBin "test-develop" |
52 |
| - '' |
53 |
| - for dir in `ls -d */`; do |
54 |
| - ( |
55 |
| - ${run "nix"} develop $dir # Make sure this work after update |
56 |
| - sleep 0.2 |
57 |
| - ) |
58 |
| - done |
59 |
| - ''; |
| 21 | + overlays = [ (self.overlay) ]; |
| 22 | + pkgs = import nixpkgs { inherit system overlays; }; |
60 | 23 | in
|
61 | 24 | {
|
62 |
| - devShells.default = mkShell { buildInputs = [ format update ]; }; |
| 25 | + devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ format update ]; }; |
63 | 26 |
|
64 | 27 | packages = {
|
65 |
| - default = dvt; |
66 |
| - inherit dvt test-develop; |
| 28 | + dvt-init = pkgs.dvt; |
| 29 | + dvt-format = pkgs.format; |
| 30 | + dvt-update = pkgs.update; |
| 31 | + inherit (pkgs) test-develop; |
67 | 32 | };
|
68 | 33 | });
|
69 | 34 | }
|
0 commit comments