|
47 | 47 | ...
|
48 | 48 | }:
|
49 | 49 | let
|
50 |
| - workspace = uv2nix.lib.workspace.loadWorkspace { workspaceRoot = ./.; }; |
51 |
| - pyprojectOverlay = workspace.mkPyprojectOverlay { |
52 |
| - sourcePreference = "wheel"; |
53 |
| - }; |
54 |
| - pyprojectOverrides = final: prev: { |
55 |
| - makejinja = prev.makejinja.overrideAttrs (old: { |
56 |
| - passthru = (old.passthru or { }) // { |
57 |
| - tests = (old.tests or { }) // { |
58 |
| - pytest = pkgs.stdenv.mkDerivation { |
59 |
| - name = "${final.makejinja.name}-pytest"; |
60 |
| - inherit (final.makejinja) src; |
61 |
| - nativeBuildInputs = [ |
62 |
| - (final.mkVirtualEnv "makejinja-test-env" { |
63 |
| - makejinja = [ "test" ]; |
64 |
| - }) |
65 |
| - ]; |
66 |
| - dontConfigure = true; |
67 |
| - buildPhase = '' |
68 |
| - runHook preBuild |
69 |
| - pytest --cov-report=html |
70 |
| - runHook postBuild |
71 |
| - ''; |
72 |
| - installPhase = '' |
73 |
| - runHook preInstall |
74 |
| - mv htmlcov $out |
75 |
| - runHook postInstall |
76 |
| - ''; |
77 |
| - }; |
78 |
| - }; |
79 |
| - docs = pkgs.stdenv.mkDerivation { |
80 |
| - name = "${final.makejinja.name}-docs"; |
81 |
| - inherit (final.makejinja) src; |
82 |
| - nativeBuildInputs = with pkgs; [ |
83 |
| - (final.mkVirtualEnv "makejinja-docs-env" { |
84 |
| - makejinja = [ "docs" ]; |
85 |
| - }) |
86 |
| - asciinema-scenario |
87 |
| - asciinema-agg |
88 |
| - ]; |
89 |
| - dontConfigure = true; |
90 |
| - buildPhase = '' |
91 |
| - runHook preBuild |
92 |
| -
|
93 |
| - { |
94 |
| - echo '```txt' |
95 |
| - COLUMNS=120 makejinja --help |
96 |
| - echo '```' |
97 |
| - } > ./manpage.md |
98 |
| -
|
99 |
| - asciinema-scenario ./assets/demo.scenario > ./assets/demo.cast |
100 |
| - agg \ |
101 |
| - --font-dir "${pkgs.jetbrains-mono}/share/fonts/truetype" \ |
102 |
| - --font-family "JetBrains Mono" \ |
103 |
| - --theme monokai \ |
104 |
| - ./assets/demo.cast ./assets/demo.gif |
105 |
| -
|
106 |
| - pdoc \ |
107 |
| - -d google \ |
108 |
| - -t pdoc-template \ |
109 |
| - --math \ |
110 |
| - --logo https://raw.githubusercontent.com/mirkolenz/makejinja/main/assets/logo.png \ |
111 |
| - -o "$out" \ |
112 |
| - ./src/makejinja |
113 |
| -
|
114 |
| - runHook postBuild |
115 |
| - ''; |
116 |
| - installPhase = '' |
117 |
| - runHook preInstall |
118 |
| -
|
119 |
| - mkdir -p "$out/assets" |
120 |
| - cp -rf ./assets/{*.png,*.gif} "$out/assets/" |
121 |
| -
|
122 |
| - runHook postInstall |
123 |
| - ''; |
124 |
| - }; |
125 |
| - }; |
126 |
| - }); |
127 |
| - }; |
128 |
| - baseSet = pkgs.callPackage pyproject-nix.build.packages { |
129 |
| - python = pkgs.python3; |
130 |
| - }; |
131 |
| - pythonSet = baseSet.overrideScope ( |
132 |
| - lib.composeManyExtensions [ |
133 |
| - pyprojectOverlay |
134 |
| - pyprojectOverrides |
135 |
| - ] |
136 |
| - ); |
137 |
| - addMeta = |
138 |
| - drv: |
139 |
| - drv.overrideAttrs (old: { |
140 |
| - passthru = lib.recursiveUpdate (old.passthru or { }) { |
141 |
| - inherit (pythonSet.makejinja.passthru) tests; |
142 |
| - }; |
143 |
| - meta = (old.meta or { }) // { |
144 |
| - mainProgram = "makejinja"; |
145 |
| - maintainers = with lib.maintainers; [ mirkolenz ]; |
146 |
| - license = lib.licenses.mit; |
147 |
| - homepage = "https://github.com/mirkolenz/makejinja"; |
148 |
| - description = "Generate entire directory structures using Jinja templates with support for external data and custom plugins."; |
149 |
| - platforms = with lib.platforms; darwin ++ linux; |
150 |
| - }; |
151 |
| - }); |
| 50 | + inherit (config.legacyPackages) pythonSet; |
152 | 51 | in
|
153 | 52 | {
|
154 | 53 | _module.args.pkgs = import nixpkgs {
|
|
174 | 73 | nixfmt.enable = true;
|
175 | 74 | };
|
176 | 75 | };
|
| 76 | + legacyPackages.pythonSet = pkgs.callPackage ./default.nix { |
| 77 | + inherit (inputs) uv2nix pyproject-nix; |
| 78 | + }; |
177 | 79 | packages = {
|
178 | 80 | inherit (pythonSet.makejinja.passthru) docs;
|
179 | 81 | default = config.packages.makejinja;
|
180 |
| - makejinja = addMeta (pythonSet.mkVirtualEnv "makejinja-env" workspace.deps.optionals); |
181 |
| - docker = pkgs.dockerTools.buildLayeredImage { |
| 82 | + makejinja = pythonSet.mkApp "optionals"; |
| 83 | + docker = pkgs.dockerTools.streamLayeredImage { |
182 | 84 | name = "makejinja";
|
183 | 85 | tag = "latest";
|
184 | 86 | created = "now";
|
|
198 | 100 | token = "$GH_TOKEN";
|
199 | 101 | };
|
200 | 102 | version = builtins.getEnv "VERSION";
|
201 |
| - images = with self.packages; [ |
| 103 | + imageStreams = with self.packages; [ |
202 | 104 | x86_64-linux.docker
|
203 | 105 | aarch64-linux.docker
|
204 | 106 | ];
|
|
0 commit comments