+121
-20
packetmix/npins/default.nix
+121
-20
packetmix/npins/default.nix
···
9
*/
10
# Generated by npins. Do not modify; will be overwritten regularly
11
let
12
-
data = builtins.fromJSON (builtins.readFile ./sources.json);
13
-
version = data.version;
14
15
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
16
range =
···
21
22
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
23
stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
24
-
concatMapStrings = f: list: concatStrings (map f list);
25
concatStrings = builtins.concatStringsSep "";
26
27
# If the environment variable NPINS_OVERRIDE_${name} is set, then use
···
48
49
mkSource =
50
name: spec:
51
assert spec ? type;
52
let
53
path =
54
if spec.type == "Git" then
55
-
mkGitSource spec
56
else if spec.type == "GitRelease" then
57
-
mkGitSource spec
58
else if spec.type == "PyPi" then
59
-
mkPyPiSource spec
60
else if spec.type == "Channel" then
61
-
mkChannelSource spec
62
else if spec.type == "Tarball" then
63
-
mkTarballSource spec
64
else
65
builtins.throw "Unknown source type ${spec.type}";
66
in
67
spec // { outPath = mayOverride name path; };
68
69
mkGitSource =
70
{
71
repository,
72
revision,
73
url ? null,
74
submodules,
75
hash,
76
-
branch ? null,
77
...
78
}:
79
assert repository ? type;
80
# At the moment, either it is a plain git repository (which has an url), or it is a GitHub/GitLab repository
81
# In the latter case, there we will always be an url to the tarball
82
if url != null && !submodules then
83
-
builtins.fetchTarball {
84
inherit url;
85
sha256 = hash;
86
}
···
107
"${if matched == null then "source" else builtins.head matched}${appendShort}";
108
name = urlToName url revision;
109
in
110
-
builtins.fetchGit {
111
rev = revision;
112
narHash = hash;
113
···
115
};
116
117
mkPyPiSource =
118
-
{ url, hash, ... }:
119
-
builtins.fetchurl {
120
inherit url;
121
sha256 = hash;
122
};
123
124
mkChannelSource =
125
-
{ url, hash, ... }:
126
-
builtins.fetchTarball {
127
inherit url;
128
sha256 = hash;
129
};
130
131
mkTarballSource =
132
{
133
url,
134
locked_url ? url,
135
hash,
136
...
137
}:
138
-
builtins.fetchTarball {
139
url = locked_url;
140
sha256 = hash;
141
};
142
in
143
-
if version == 6 then
144
-
builtins.mapAttrs mkSource data.pins
145
-
else
146
-
throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`"
···
9
*/
10
# Generated by npins. Do not modify; will be overwritten regularly
11
let
12
+
# Backwards-compatibly make something that previously didn't take any arguments take some
13
+
# The function must return an attrset, and will unfortunately be eagerly evaluated
14
+
# Same thing, but it catches eval errors on the default argument so that one may still call it with other arguments
15
+
mkFunctor =
16
+
fn:
17
+
let
18
+
e = builtins.tryEval (fn { });
19
+
in
20
+
(if e.success then e.value else { error = fn { }; }) // { __functor = _self: fn; };
21
22
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/lists.nix#L295
23
range =
···
28
29
# https://github.com/NixOS/nixpkgs/blob/0258808f5744ca980b9a1f24fe0b1e6f0fecee9c/lib/strings.nix#L269
30
stringAsChars = f: s: concatStrings (map f (stringToCharacters s));
31
concatStrings = builtins.concatStringsSep "";
32
33
# If the environment variable NPINS_OVERRIDE_${name} is set, then use
···
54
55
mkSource =
56
name: spec:
57
+
{
58
+
pkgs ? null,
59
+
}:
60
assert spec ? type;
61
let
62
+
# Unify across builtin and pkgs fetchers.
63
+
# `fetchGit` requires a wrapper because of slight API differences.
64
+
fetchers =
65
+
if pkgs == null then
66
+
{
67
+
inherit (builtins) fetchTarball fetchurl;
68
+
# For some fucking reason, fetchGit has a different signature than the other builtin fetchers …
69
+
fetchGit = args: (builtins.fetchGit args).outPath;
70
+
}
71
+
else
72
+
{
73
+
fetchTarball =
74
+
{
75
+
url,
76
+
sha256,
77
+
}:
78
+
pkgs.fetchzip {
79
+
inherit url sha256;
80
+
extension = "tar";
81
+
};
82
+
inherit (pkgs) fetchurl;
83
+
fetchGit =
84
+
{
85
+
url,
86
+
submodules,
87
+
rev,
88
+
name,
89
+
narHash,
90
+
}:
91
+
pkgs.fetchgit {
92
+
inherit url rev name;
93
+
fetchSubmodules = submodules;
94
+
hash = narHash;
95
+
};
96
+
};
97
+
98
+
# Dispatch to the correct code path based on the type
99
path =
100
if spec.type == "Git" then
101
+
mkGitSource fetchers spec
102
else if spec.type == "GitRelease" then
103
+
mkGitSource fetchers spec
104
else if spec.type == "PyPi" then
105
+
mkPyPiSource fetchers spec
106
else if spec.type == "Channel" then
107
+
mkChannelSource fetchers spec
108
else if spec.type == "Tarball" then
109
+
mkTarballSource fetchers spec
110
+
else if spec.type == "Container" then
111
+
mkContainerSource pkgs spec
112
else
113
builtins.throw "Unknown source type ${spec.type}";
114
in
115
spec // { outPath = mayOverride name path; };
116
117
mkGitSource =
118
+
{
119
+
fetchTarball,
120
+
fetchGit,
121
+
...
122
+
}:
123
{
124
repository,
125
revision,
126
url ? null,
127
submodules,
128
hash,
129
...
130
}:
131
assert repository ? type;
132
# At the moment, either it is a plain git repository (which has an url), or it is a GitHub/GitLab repository
133
# In the latter case, there we will always be an url to the tarball
134
if url != null && !submodules then
135
+
fetchTarball {
136
inherit url;
137
sha256 = hash;
138
}
···
159
"${if matched == null then "source" else builtins.head matched}${appendShort}";
160
name = urlToName url revision;
161
in
162
+
fetchGit {
163
rev = revision;
164
narHash = hash;
165
···
167
};
168
169
mkPyPiSource =
170
+
{ fetchurl, ... }:
171
+
{
172
+
url,
173
+
hash,
174
+
...
175
+
}:
176
+
fetchurl {
177
inherit url;
178
sha256 = hash;
179
};
180
181
mkChannelSource =
182
+
{ fetchTarball, ... }:
183
+
{
184
+
url,
185
+
hash,
186
+
...
187
+
}:
188
+
fetchTarball {
189
inherit url;
190
sha256 = hash;
191
};
192
193
mkTarballSource =
194
+
{ fetchTarball, ... }:
195
{
196
url,
197
locked_url ? url,
198
hash,
199
...
200
}:
201
+
fetchTarball {
202
url = locked_url;
203
sha256 = hash;
204
};
205
+
206
+
mkContainerSource =
207
+
pkgs:
208
+
{
209
+
image_name,
210
+
image_tag,
211
+
image_digest,
212
+
...
213
+
}:
214
+
if pkgs == null then
215
+
builtins.throw "container sources require passing in a Nixpkgs value: https://github.com/andir/npins/blob/master/README.md#using-the-nixpkgs-fetchers"
216
+
else
217
+
pkgs.dockerTools.pullImage {
218
+
imageName = image_name;
219
+
imageDigest = image_digest;
220
+
finalImageTag = image_tag;
221
+
};
222
in
223
+
mkFunctor (
224
+
{
225
+
input ? ./sources.json,
226
+
}:
227
+
let
228
+
data =
229
+
if builtins.isPath input then
230
+
# while `readFile` will throw an error anyways if the path doesn't exist,
231
+
# we still need to check beforehand because *our* error can be caught but not the one from the builtin
232
+
# *piegames sighs*
233
+
if builtins.pathExists input then
234
+
builtins.fromJSON (builtins.readFile input)
235
+
else
236
+
throw "Input path ${toString input} does not exist"
237
+
else if builtins.isAttrs input then
238
+
input
239
+
else
240
+
throw "Unsupported input type ${builtins.typeOf input}, must be a path or an attrset";
241
+
version = data.version;
242
+
in
243
+
if version == 7 then
244
+
builtins.mapAttrs (name: spec: mkFunctor (mkSource name spec)) data.pins
245
+
else
246
+
throw "Unsupported format version ${toString version} in sources.json. Try running `npins upgrade`"
247
+
)
+49
-49
packetmix/npins/sources.json
+49
-49
packetmix/npins/sources.json
···
61
},
62
"branch": "main",
63
"submodules": false,
64
-
"revision": "c518cf4f62659d9cf585da6f29b67f8a77d0fbc0",
65
-
"url": "https://github.com/bluesky-social/atproto/archive/c518cf4f62659d9cf585da6f29b67f8a77d0fbc0.tar.gz",
66
-
"hash": "sha256-fW9BKtG9vptNYzCh/AWf8m9QoPEGX6najSFlAekElHA="
67
},
68
"catppuccin": {
69
"type": "Git",
···
88
},
89
"branch": "master",
90
"submodules": false,
91
-
"revision": "8395ec4576cf54411d974675d26f64208acdcee0",
92
-
"url": "https://gitlab.collabora.com/api/v4/projects/collabora%2Fgtimelog/repository/archive.tar.gz?sha=8395ec4576cf54411d974675d26f64208acdcee0",
93
-
"hash": "sha256-M9pCF+XVf5ylxgq0BSUn5Vkg1HZ6i88LDiUDM4Y1Ghs="
94
},
95
"copyparty": {
96
"type": "GitRelease",
···
103
"version_upper_bound": null,
104
"release_prefix": null,
105
"submodules": false,
106
-
"version": "v1.19.17",
107
-
"revision": "e2a15a3a922514efe97afc4afa043cd7c4619ad1",
108
-
"url": "https://api.github.com/repos/9001/copyparty/tarball/refs/tags/v1.19.17",
109
-
"hash": "sha256-Rb6Lq2CW+LrIH8M4sCPA8k12GX7xNUWK4I+xeByLl+M="
110
},
111
"headscale": {
112
"type": "Git",
···
117
},
118
"branch": "main",
119
"submodules": false,
120
-
"revision": "8010cc574ea309728f5c7d3fd1cb08252f0111f5",
121
-
"url": "https://github.com/juanfont/headscale/archive/8010cc574ea309728f5c7d3fd1cb08252f0111f5.tar.gz",
122
-
"hash": "sha256-lQhaw7SVV+qBEZnH8u+gsEwqIByFlZQyjDJ3RbW7uzM="
123
},
124
"home-manager": {
125
"type": "Git",
···
143
},
144
"branch": "master",
145
"submodules": false,
146
-
"revision": "189c21cf879669008ccf06e78a553f17e88d8ef0",
147
-
"url": "https://github.com/nix-community/home-manager/archive/189c21cf879669008ccf06e78a553f17e88d8ef0.tar.gz",
148
-
"hash": "sha256-nZh6uvc71nVNaf/y+wesnjwsmJ6IZZUnP2EzpZe48To="
149
},
150
"impermanence": {
151
"type": "Git",
···
171
"version_upper_bound": null,
172
"release_prefix": null,
173
"submodules": false,
174
-
"version": "v0.4.2",
175
-
"revision": "f0212638a2ec787a7841882f4477d40ae24f0a5d",
176
-
"url": "https://api.github.com/repos/nix-community/lanzaboote/tarball/refs/tags/v0.4.2",
177
-
"hash": "sha256-AEEDktApTEZ5PZXNDkry2YV2k6t0dTgLPEmAZbnigXU="
178
},
179
"lix": {
180
"type": "Git",
···
186
},
187
"branch": "main",
188
"submodules": false,
189
-
"revision": "2d2cd7ac03311bddb9645a7ab82c7e78edccbaa0",
190
-
"url": "https://git.lix.systems/lix-project/lix/archive/2d2cd7ac03311bddb9645a7ab82c7e78edccbaa0.tar.gz",
191
-
"hash": "sha256-jUn34QOaXqguaH+WwB2xWRHlmelvzJfFuEcQrC1cwK0="
192
},
193
"lix-module": {
194
"type": "Git",
···
200
},
201
"branch": "main",
202
"submodules": false,
203
-
"revision": "7c31a18259b8358ac196cf803a26967c0fa1d3e4",
204
-
"url": "https://git.lix.systems/lix-project/nixos-module/archive/7c31a18259b8358ac196cf803a26967c0fa1d3e4.tar.gz",
205
-
"hash": "sha256-n5dRAIC3/78drQtFxmQRrBLd6TKfotUnX7GWu0mAcSg="
206
},
207
"lua-multipart": {
208
"type": "GitRelease",
···
245
},
246
"branch": "main",
247
"submodules": false,
248
-
"revision": "6c6c42eaae3d095de6d1b47396c8b74ea57cb442",
249
-
"url": "https://github.com/nilla-nix/cli/archive/6c6c42eaae3d095de6d1b47396c8b74ea57cb442.tar.gz",
250
-
"hash": "sha256-0+d6LZfofBG+4OxnZcFaNg2ycgj1zcOJQUcPL1TEaSc="
251
},
252
"nilla-home": {
253
"type": "GitRelease",
···
287
},
288
"branch": "main",
289
"submodules": false,
290
-
"revision": "f851a923137c0a54719412146fd63d24b3214e60",
291
-
"url": "https://github.com/sodiboo/niri-flake/archive/f851a923137c0a54719412146fd63d24b3214e60.tar.gz",
292
-
"hash": "sha256-E2ySTu/oK7cYBdAI3tlGP9zVjF4mZgWJ1OZInBCMb00="
293
},
294
"nix-index-database": {
295
"type": "Git",
···
300
},
301
"branch": "main",
302
"submodules": false,
303
-
"revision": "5024e1901239a76b7bf94a4cd27f3507e639d49e",
304
-
"url": "https://github.com/nix-community/nix-index-database/archive/5024e1901239a76b7bf94a4cd27f3507e639d49e.tar.gz",
305
-
"hash": "sha256-xmU8kAsRprJiTGBTaGrwmjBP3AMA9ltlrxHKFuy5JWc="
306
},
307
"nix-monitored": {
308
"type": "Git",
···
320
"nixos-unstable": {
321
"type": "Channel",
322
"name": "nixos-unstable",
323
-
"url": "https://releases.nixos.org/nixos/unstable/nixos-25.11pre880095.5e2a59a5b1a8/nixexprs.tar.xz",
324
-
"hash": "sha256-u0JUo46QSoXnjLaezAM75wRNuxVMVbm5OxHH122TeTY="
325
},
326
"nixpkgs": {
327
"type": "Channel",
328
"name": "nixos-25.05",
329
-
"url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.811497.33c6dca0c0cb/nixexprs.tar.xz",
330
-
"hash": "sha256-Z7kbKnORypPkJ74r6sHA2RQH1XATHLWiGgZVrli0scY="
331
},
332
"npins": {
333
"type": "Git",
···
363
},
364
"branch": "master",
365
"submodules": false,
366
-
"revision": "7d1888abf8c5b82692476a9de2137a024d484771",
367
"url": null,
368
-
"hash": "sha256-WD/UFUMcXMV/3tqD4h2tPaQH1KDlsJ00M+T4N/xkAGs="
369
},
370
"treefmt-nix": {
371
"type": "Git",
···
376
},
377
"branch": "main",
378
"submodules": false,
379
-
"revision": "f56b1934f5f8fcab8deb5d38d42fd692632b47c2",
380
-
"url": "https://github.com/numtide/treefmt-nix/archive/f56b1934f5f8fcab8deb5d38d42fd692632b47c2.tar.gz",
381
-
"hash": "sha256-ZRVs8UqikBa4Ki3X4KCnMBtBW0ux1DaT35tgsnB1jM4="
382
},
383
"walker": {
384
"type": "GitRelease",
···
391
"version_upper_bound": null,
392
"release_prefix": null,
393
"submodules": false,
394
-
"version": "v2.5.5",
395
-
"revision": "ff292cb12c4816ce21dab47cd9894b8046b16a93",
396
-
"url": "https://api.github.com/repos/abenz1267/walker/tarball/refs/tags/v2.5.5",
397
-
"hash": "sha256-xc0yW9OhLTppjkaWWCWG9q4BVJZbhnLqLniLeMkcTvM="
398
}
399
},
400
-
"version": 6
401
}
···
61
},
62
"branch": "main",
63
"submodules": false,
64
+
"revision": "94ddc8219c144475df622137ab88895255136eda",
65
+
"url": "https://github.com/bluesky-social/atproto/archive/94ddc8219c144475df622137ab88895255136eda.tar.gz",
66
+
"hash": "sha256-Hs6ZhzahfAIgyTOqD3QahQi6URx0FdDCp9T+lj/sK1k="
67
},
68
"catppuccin": {
69
"type": "Git",
···
88
},
89
"branch": "master",
90
"submodules": false,
91
+
"revision": "1be9d9f7e844831f221b67a46a55fc47a164e416",
92
+
"url": "https://gitlab.collabora.com/api/v4/projects/collabora%2Fgtimelog/repository/archive.tar.gz?sha=1be9d9f7e844831f221b67a46a55fc47a164e416",
93
+
"hash": "sha256-v5WEa7M0mmrxdU1l7nIqyrMaVy2jiJNnXHLiHnw2xIc="
94
},
95
"copyparty": {
96
"type": "GitRelease",
···
103
"version_upper_bound": null,
104
"release_prefix": null,
105
"submodules": false,
106
+
"version": "v1.19.20",
107
+
"revision": "450cd86dc1e98b98ab131fc9417c83289165a507",
108
+
"url": "https://api.github.com/repos/9001/copyparty/tarball/refs/tags/v1.19.20",
109
+
"hash": "sha256-/Wm8hZvdGfYWdTOF+dgTPX8DGuSKLhGw4qC4crf1dAo="
110
},
111
"headscale": {
112
"type": "Git",
···
117
},
118
"branch": "main",
119
"submodules": false,
120
+
"revision": "2024219bd10adbb5c0d29f900ed0961ace8cc15c",
121
+
"url": "https://github.com/juanfont/headscale/archive/2024219bd10adbb5c0d29f900ed0961ace8cc15c.tar.gz",
122
+
"hash": "sha256-fWpOvGq+/0Wk1bBELw0CfW1qGffzEK5Dp408fIkr43o="
123
},
124
"home-manager": {
125
"type": "Git",
···
143
},
144
"branch": "master",
145
"submodules": false,
146
+
"revision": "b959c67241cae17fc9e4ee7eaf13dfa8512477ea",
147
+
"url": "https://github.com/nix-community/home-manager/archive/b959c67241cae17fc9e4ee7eaf13dfa8512477ea.tar.gz",
148
+
"hash": "sha256-0ptUDbYwxv1kk/uzEX4+NJjY2e16MaAhtzAOJ6K0TG0="
149
},
150
"impermanence": {
151
"type": "Git",
···
171
"version_upper_bound": null,
172
"release_prefix": null,
173
"submodules": false,
174
+
"version": "v0.4.3",
175
+
"revision": "65a4aa3d4dccf50f22c0190c7ee660de51c586f2",
176
+
"url": "https://api.github.com/repos/nix-community/lanzaboote/tarball/refs/tags/v0.4.3",
177
+
"hash": "sha256-If6vQ+KvtKs3ARBO9G3l+4wFSCYtRBrwX1z+I+B61wQ="
178
},
179
"lix": {
180
"type": "Git",
···
186
},
187
"branch": "main",
188
"submodules": false,
189
+
"revision": "24054c110787d725ac0bbdafd40c71c83bf1f9a0",
190
+
"url": "https://git.lix.systems/lix-project/lix/archive/24054c110787d725ac0bbdafd40c71c83bf1f9a0.tar.gz",
191
+
"hash": "sha256-vFSL9+KvrckyLJB4AEgbAEyKgkaBYBVN6ZDUAa+4Yps="
192
},
193
"lix-module": {
194
"type": "Git",
···
200
},
201
"branch": "main",
202
"submodules": false,
203
+
"revision": "c47f62187601ea2991b79a9bacdbfdf76cd29fbe",
204
+
"url": "https://git.lix.systems/lix-project/nixos-module/archive/c47f62187601ea2991b79a9bacdbfdf76cd29fbe.tar.gz",
205
+
"hash": "sha256-FvuAw56NIVJpS3Kr8Wv9PpU4eehZMcdIVkxjStuYmqc="
206
},
207
"lua-multipart": {
208
"type": "GitRelease",
···
245
},
246
"branch": "main",
247
"submodules": false,
248
+
"revision": "aa042dbd9152c99e5a8db51bcf87306737423b9e",
249
+
"url": "https://github.com/nilla-nix/cli/archive/aa042dbd9152c99e5a8db51bcf87306737423b9e.tar.gz",
250
+
"hash": "sha256-cPdYYXhCsDllVgq+gs5Wqhb41bFtKWHlkTvjOJv7its="
251
},
252
"nilla-home": {
253
"type": "GitRelease",
···
287
},
288
"branch": "main",
289
"submodules": false,
290
+
"revision": "20aadad64b8b8cbebc71371713c141d91d7f8172",
291
+
"url": "https://github.com/sodiboo/niri-flake/archive/20aadad64b8b8cbebc71371713c141d91d7f8172.tar.gz",
292
+
"hash": "sha256-zx7UxreMz646qikxw+So7eGRQeWccKFZxuMvJowJuFs="
293
},
294
"nix-index-database": {
295
"type": "Git",
···
300
},
301
"branch": "main",
302
"submodules": false,
303
+
"revision": "359ff6333a7b0b60819d4c20ed05a3a1f726771f",
304
+
"url": "https://github.com/nix-community/nix-index-database/archive/359ff6333a7b0b60819d4c20ed05a3a1f726771f.tar.gz",
305
+
"hash": "sha256-Pu1v3mlFhRzZiSxVHb2/i/f5yeYyRNqr0RvEUJ4UgHo="
306
},
307
"nix-monitored": {
308
"type": "Git",
···
320
"nixos-unstable": {
321
"type": "Channel",
322
"name": "nixos-unstable",
323
+
"url": "https://releases.nixos.org/nixos/unstable/nixos-25.11pre888552.b3d51a0365f6/nixexprs.tar.xz",
324
+
"hash": "sha256-pCUTlk1qNASgSdrvMh02uYO4dERbDE9S0cYwa1PIPN8="
325
},
326
"nixpkgs": {
327
"type": "Channel",
328
"name": "nixos-25.05",
329
+
"url": "https://releases.nixos.org/nixos/25.05/nixos-25.05.812378.ca534a76c4af/nixexprs.tar.xz",
330
+
"hash": "sha256-QO3VRw67TY1pCtXqhHu0eCplqe1EOq6f4A635euuEmk="
331
},
332
"npins": {
333
"type": "Git",
···
363
},
364
"branch": "master",
365
"submodules": false,
366
+
"revision": "dd1bcee8c99bf799130645f32c94d1693f812f0d",
367
"url": null,
368
+
"hash": "sha256-1PGiDLrx1hNGNoUCnmc1Np2t48r7nIxxiTO8JHvaTws="
369
},
370
"treefmt-nix": {
371
"type": "Git",
···
376
},
377
"branch": "main",
378
"submodules": false,
379
+
"revision": "4ef3dfdbb5ddfb9e39999a2f2b0c2637277859d4",
380
+
"url": "https://github.com/numtide/treefmt-nix/archive/4ef3dfdbb5ddfb9e39999a2f2b0c2637277859d4.tar.gz",
381
+
"hash": "sha256-hOP4GxAmeXI43U1lIrKbWI2k35M1/T/i8iJrO9m/GzY="
382
},
383
"walker": {
384
"type": "GitRelease",
···
391
"version_upper_bound": null,
392
"release_prefix": null,
393
"submodules": false,
394
+
"version": "v2.9.2",
395
+
"revision": "dcd17c1150a16641e058cf58f30eaa6a78956db8",
396
+
"url": "https://api.github.com/repos/abenz1267/walker/tarball/refs/tags/v2.9.2",
397
+
"hash": "sha256-HElg/cm99rtBbLuJRUrrfQ4xJeUZJQgzyc+GORT08xI="
398
}
399
},
400
+
"version": 7
401
}