git.delta.rocks / jrsonnet / refs/commits / 15ef984b843b

difftreelog

refactor secret management

Yaroslav Bolyukin2023-02-05parent: #4e7930a.patch.diff
in: trunk

19 files changed

modifiedCargo.lockdiffbeforeafterboth
44
5[[package]]5[[package]]
6name = "aead"6name = "aead"
7version = "0.4.3"7version = "0.5.1"
8source = "registry+https://github.com/rust-lang/crates.io-index"8source = "registry+https://github.com/rust-lang/crates.io-index"
9checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877"9checksum = "5c192eb8f11fc081b0fe4259ba5af04217d4e0faddd02417310a927911abd7c8"
10dependencies = [10dependencies = [
11 "crypto-common",
11 "generic-array",12 "generic-array",
12]13]
1314
14[[package]]15[[package]]
15name = "aes"16name = "aes"
16version = "0.8.1"17version = "0.8.2"
17source = "registry+https://github.com/rust-lang/crates.io-index"18source = "registry+https://github.com/rust-lang/crates.io-index"
18checksum = "bfe0133578c0986e1fe3dfcd4af1cc5b2dd6c3dbf534d69916ce16a2701d40ba"19checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241"
19dependencies = [20dependencies = [
20 "cfg-if",21 "cfg-if",
21 "cipher 0.4.3",22 "cipher",
22 "cpufeatures",23 "cpufeatures",
23]24]
2425
25[[package]]26[[package]]
26name = "age"27name = "age"
27version = "0.8.1"28version = "0.9.0"
28source = "registry+https://github.com/rust-lang/crates.io-index"29source = "registry+https://github.com/rust-lang/crates.io-index"
29checksum = "f066ce1514d24201eab31e0831e9333d2e9b06d698b25f705ef0697fee8256a2"30checksum = "1056efa39f3f960845e69985c292022187b47bc3f83ddfc96edfc586007735a1"
30dependencies = [31dependencies = [
31 "aes",32 "aes",
32 "age-core",33 "age-core",
33 "base64",34 "base64 0.13.1",
34 "bcrypt-pbkdf",35 "bcrypt-pbkdf",
35 "bech32",36 "bech32",
36 "cbc",37 "cbc",
37 "chacha20poly1305",38 "chacha20poly1305",
38 "cipher 0.4.3",39 "cipher",
39 "cookie-factory",40 "cookie-factory",
40 "ctr",41 "ctr",
41 "curve25519-dalek",42 "curve25519-dalek",
52 "rsa",53 "rsa",
53 "rust-embed",54 "rust-embed",
54 "scrypt",55 "scrypt",
55 "sha2 0.10.3",
56 "sha2 0.9.9",56 "sha2",
57 "subtle",57 "subtle",
58 "x25519-dalek",58 "x25519-dalek",
59 "zeroize",59 "zeroize",
60]60]
6161
62[[package]]62[[package]]
63name = "age-core"63name = "age-core"
64version = "0.8.0"64version = "0.9.0"
65source = "registry+https://github.com/rust-lang/crates.io-index"65source = "registry+https://github.com/rust-lang/crates.io-index"
66checksum = "00a5c8d8a33abc74ad393896a6305351dd159d0e184788f4729e3c80e397fa45"66checksum = "e3d2e815ac879dc23c1139e720d21c6cd4d1276345c772587285d965a69b8f32"
67dependencies = [67dependencies = [
68 "base64",68 "base64 0.13.1",
69 "chacha20poly1305",69 "chacha20poly1305",
70 "cookie-factory",70 "cookie-factory",
71 "hkdf",71 "hkdf",
72 "io_tee",72 "io_tee",
73 "nom",73 "nom",
74 "rand 0.8.5",74 "rand 0.8.5",
75 "secrecy",75 "secrecy",
76 "sha2 0.10.3",76 "sha2",
77]77]
7878
79[[package]]79[[package]]
80name = "aho-corasick"80name = "aho-corasick"
81version = "0.7.18"81version = "0.7.20"
82source = "registry+https://github.com/rust-lang/crates.io-index"82source = "registry+https://github.com/rust-lang/crates.io-index"
83checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"83checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac"
84dependencies = [84dependencies = [
85 "memchr",85 "memchr",
86]86]
8787
88[[package]]88[[package]]
89name = "ansi_term"89name = "alejandra"
90version = "0.12.1"90version = "1.5.0"
91source = "registry+https://github.com/rust-lang/crates.io-index"91source = "registry+https://github.com/rust-lang/crates.io-index"
92checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"92checksum = "2523e3312f47f4b28c443249c1d25fe7a71e4719198a8889fcc41a155032cb7f"
93dependencies = [93dependencies = [
94 "winapi",94 "mimalloc",
95 "rnix",
96 "rowan",
95]97]
9698
97[[package]]99[[package]]
98name = "anyhow"100name = "android_system_properties"
99version = "1.0.53"101version = "0.1.5"
100source = "registry+https://github.com/rust-lang/crates.io-index"102source = "registry+https://github.com/rust-lang/crates.io-index"
101checksum = "94a45b455c14666b85fc40a019e8ab9eb75e3a124e05494f5397122bc9eb06e0"103checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311"
104dependencies = [
105 "libc",
106]
102107
103[[package]]108[[package]]
104name = "async-trait"109name = "anyhow"
105version = "0.1.52"110version = "1.0.68"
106source = "registry+https://github.com/rust-lang/crates.io-index"111source = "registry+https://github.com/rust-lang/crates.io-index"
107checksum = "061a7acccaa286c011ddc30970520b98fa40e00c9d644633fb26b5fc63a265e3"112checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61"
108dependencies = [
109 "proc-macro2",
110 "quote",
111 "syn",
112]
113113
114[[package]]114[[package]]
115name = "atty"115name = "arc-swap"
116version = "0.2.14"116version = "1.6.0"
117source = "registry+https://github.com/rust-lang/crates.io-index"117source = "registry+https://github.com/rust-lang/crates.io-index"
118checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"118checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6"
119dependencies = [
120 "hermit-abi",
121 "libc",
122 "winapi",
123]
124119
125[[package]]120[[package]]
126name = "autocfg"121name = "async-trait"
127version = "0.1.8"122version = "0.1.64"
128source = "registry+https://github.com/rust-lang/crates.io-index"123source = "registry+https://github.com/rust-lang/crates.io-index"
129checksum = "0dde43e75fd43e8a1bf86103336bc699aa8d17ad1be60c76c0bdfd4828e19b78"124checksum = "1cd7fce9ba8c3c042128ce72d8b2ddbf3a05747efb67ea0313c635e10bda47a2"
130dependencies = [125dependencies = [
131 "autocfg 1.1.0",126 "proc-macro2",
127 "quote",
128 "syn",
132]129]
133130
134[[package]]131[[package]]
139136
140[[package]]137[[package]]
141name = "base64"138name = "base64"
142version = "0.13.0"139version = "0.13.1"
143source = "registry+https://github.com/rust-lang/crates.io-index"140source = "registry+https://github.com/rust-lang/crates.io-index"
144checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"141checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8"
142
143[[package]]
144name = "base64"
145version = "0.21.0"
146source = "registry+https://github.com/rust-lang/crates.io-index"
147checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a"
145148
146[[package]]149[[package]]
147name = "base64ct"150name = "base64ct"
148version = "1.1.1"151version = "1.5.3"
149source = "registry+https://github.com/rust-lang/crates.io-index"152source = "registry+https://github.com/rust-lang/crates.io-index"
150checksum = "e6b4d9b1225d28d360ec6a231d65af1fd99a2a095154c8040689617290569c5c"153checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf"
151154
152[[package]]155[[package]]
153name = "bcrypt-pbkdf"156name = "bcrypt-pbkdf"
154version = "0.8.1"157version = "0.9.0"
155source = "registry+https://github.com/rust-lang/crates.io-index"158source = "registry+https://github.com/rust-lang/crates.io-index"
156checksum = "f4ef233ffa9cb9c7820b2b0e9efd0821ed180e866c9120ec9f45518659742074"159checksum = "3806a8db60cf56efee531616a34a6aaa9a114d6da2add861b0fa4a188881b2c7"
157dependencies = [160dependencies = [
158 "blowfish",161 "blowfish",
159 "pbkdf2",162 "pbkdf2",
160 "sha2 0.10.3",163 "sha2",
161]164]
162165
163[[package]]166[[package]]
164name = "bech32"167name = "bech32"
165version = "0.8.1"168version = "0.9.1"
166source = "registry+https://github.com/rust-lang/crates.io-index"169source = "registry+https://github.com/rust-lang/crates.io-index"
167checksum = "cf9ff0bbfd639f15c74af777d81383cf53efb7c93613f6cab67c6c11e05bbf8b"170checksum = "d86b93f97252c47b41663388e6d155714a9d0c398b99f1005cbc5f978b29f445"
168171
169[[package]]172[[package]]
170name = "bitflags"173name = "bitflags"
171version = "1.3.2"174version = "1.3.2"
172source = "registry+https://github.com/rust-lang/crates.io-index"175source = "registry+https://github.com/rust-lang/crates.io-index"
173checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"176checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
174
175[[package]]
176name = "block-buffer"
177version = "0.9.0"
178source = "registry+https://github.com/rust-lang/crates.io-index"
179checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
180dependencies = [
181 "generic-array",
182]
183177
184[[package]]178[[package]]
185name = "block-buffer"179name = "block-buffer"
186version = "0.10.2"180version = "0.10.3"
187source = "registry+https://github.com/rust-lang/crates.io-index"181source = "registry+https://github.com/rust-lang/crates.io-index"
188checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324"182checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e"
189dependencies = [183dependencies = [
190 "generic-array",184 "generic-array",
191]185]
206checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"200checksum = "e412e2cd0f2b2d93e02543ceae7917b3c70331573df19ee046bcbc35e45e87d7"
207dependencies = [201dependencies = [
208 "byteorder",202 "byteorder",
209 "cipher 0.4.3",203 "cipher",
210]204]
211205
212[[package]]206[[package]]
213name = "bumpalo"207name = "bumpalo"
214version = "3.9.1"208version = "3.12.0"
215source = "registry+https://github.com/rust-lang/crates.io-index"209source = "registry+https://github.com/rust-lang/crates.io-index"
216checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"210checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535"
217211
218[[package]]212[[package]]
219name = "byteorder"213name = "byteorder"
223217
224[[package]]218[[package]]
225name = "bytes"219name = "bytes"
226version = "1.1.0"220version = "1.4.0"
227source = "registry+https://github.com/rust-lang/crates.io-index"221source = "registry+https://github.com/rust-lang/crates.io-index"
228checksum = "c4872d67bab6358e59559027aa3b9157c53d9358c51423c17554809a8858e0f8"222checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be"
229223
230[[package]]224[[package]]
231name = "cbc"225name = "cbc"
232version = "0.1.2"226version = "0.1.2"
233source = "registry+https://github.com/rust-lang/crates.io-index"227source = "registry+https://github.com/rust-lang/crates.io-index"
234checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"228checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6"
235dependencies = [229dependencies = [
236 "cipher 0.4.3",230 "cipher",
237]231]
232
233[[package]]
234name = "cbitset"
235version = "0.2.0"
236source = "registry+https://github.com/rust-lang/crates.io-index"
237checksum = "29b6ad25ae296159fb0da12b970b2fe179b234584d7cd294c891e2bbb284466b"
238dependencies = [
239 "num-traits",
240]
241
242[[package]]
243name = "cc"
244version = "1.0.79"
245source = "registry+https://github.com/rust-lang/crates.io-index"
246checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f"
238247
239[[package]]248[[package]]
240name = "cfg-if"249name = "cfg-if"
244253
245[[package]]254[[package]]
246name = "chacha20"255name = "chacha20"
247version = "0.8.1"256version = "0.9.0"
248source = "registry+https://github.com/rust-lang/crates.io-index"257source = "registry+https://github.com/rust-lang/crates.io-index"
249checksum = "01b72a433d0cf2aef113ba70f62634c56fddb0f244e6377185c56a7cadbd8f91"258checksum = "c7fc89c7c5b9e7a02dfe45cd2367bae382f9ed31c61ca8debe5f827c420a2f08"
250dependencies = [259dependencies = [
251 "cfg-if",260 "cfg-if",
252 "cipher 0.3.0",261 "cipher",
253 "cpufeatures",262 "cpufeatures",
254 "zeroize",
255]263]
256264
257[[package]]265[[package]]
258name = "chacha20poly1305"266name = "chacha20poly1305"
259version = "0.9.0"267version = "0.10.1"
260source = "registry+https://github.com/rust-lang/crates.io-index"268source = "registry+https://github.com/rust-lang/crates.io-index"
261checksum = "3b84ed6d1d5f7aa9bdde921a5090e0ca4d934d250ea3b402a5fab3a994e28a2a"269checksum = "10cd79432192d1c0f4e1a0fef9527696cc039165d729fb41b3f4f4f354c2dc35"
262dependencies = [270dependencies = [
263 "aead",271 "aead",
264 "chacha20",272 "chacha20",
265 "cipher 0.3.0",273 "cipher",
266 "poly1305",274 "poly1305",
267 "zeroize",275 "zeroize",
268]276]
269277
270[[package]]278[[package]]
271name = "chrono"279name = "chrono"
272version = "0.4.19"280version = "0.4.23"
273source = "registry+https://github.com/rust-lang/crates.io-index"281source = "registry+https://github.com/rust-lang/crates.io-index"
274checksum = "670ad68c9088c2a963aaa298cb369688cf3f9465ce5e2d4ca10e6e0098a1ce73"282checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f"
275dependencies = [283dependencies = [
284 "iana-time-zone",
276 "libc",285 "js-sys",
277 "num-integer",286 "num-integer",
278 "num-traits",287 "num-traits",
279 "serde",288 "serde",
280 "time 0.1.44",289 "time 0.1.45",
290 "wasm-bindgen",
281 "winapi",291 "winapi",
282]292]
283
284[[package]]
285name = "cipher"
286version = "0.3.0"
287source = "registry+https://github.com/rust-lang/crates.io-index"
288checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7"
289dependencies = [
290 "generic-array",
291]
292293
293[[package]]294[[package]]
294name = "cipher"295name = "cipher"
298dependencies = [299dependencies = [
299 "crypto-common",300 "crypto-common",
300 "inout",301 "inout",
302 "zeroize",
301]303]
302304
303[[package]]305[[package]]
304name = "clap"306name = "clap"
305version = "3.1.0"307version = "4.1.4"
306source = "registry+https://github.com/rust-lang/crates.io-index"308source = "registry+https://github.com/rust-lang/crates.io-index"
307checksum = "e5f1fea81f183005ced9e59cdb01737ef2423956dac5a6d731b06b2ecfaa3467"309checksum = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76"
308dependencies = [310dependencies = [
309 "atty",
310 "bitflags",311 "bitflags",
311 "clap_derive",312 "clap_derive",
312 "indexmap",313 "clap_lex",
313 "lazy_static",314 "is-terminal",
314 "os_str_bytes",315 "once_cell",
315 "strsim",316 "strsim",
316 "termcolor",317 "termcolor",
317 "terminal_size",318 "terminal_size",
318 "textwrap",
319 "unicase",319 "unicase",
320 "unicode-width",
320]321]
321322
322[[package]]323[[package]]
323name = "clap_derive"324name = "clap_derive"
324version = "3.1.0"325version = "4.1.0"
325source = "registry+https://github.com/rust-lang/crates.io-index"326source = "registry+https://github.com/rust-lang/crates.io-index"
326checksum = "5fd1122e63869df2cb309f449da1ad54a7c6dfeb7c7e6ccd8e0825d9eb93bb72"327checksum = "684a277d672e91966334af371f1a7b5833f9aa00b07c84e92fbce95e00208ce8"
327dependencies = [328dependencies = [
328 "heck",329 "heck",
329 "proc-macro-error",330 "proc-macro-error",
332 "syn",333 "syn",
333]334]
335
336[[package]]
337name = "clap_lex"
338version = "0.3.1"
339source = "registry+https://github.com/rust-lang/crates.io-index"
340checksum = "783fe232adfca04f90f56201b26d79682d4cd2625e0bc7290b95123afe558ade"
341dependencies = [
342 "os_str_bytes",
343]
344
345[[package]]
346name = "codespan-reporting"
347version = "0.11.1"
348source = "registry+https://github.com/rust-lang/crates.io-index"
349checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
350dependencies = [
351 "termcolor",
352 "unicode-width",
353]
334354
335[[package]]355[[package]]
336name = "const-oid"356name = "const-oid"
337version = "0.6.2"357version = "0.9.1"
338source = "registry+https://github.com/rust-lang/crates.io-index"358source = "registry+https://github.com/rust-lang/crates.io-index"
339checksum = "9d6f2aa4d0537bcc1c74df8755072bd31c1ef1a3a1b85a68e8404a8c353b7b8b"359checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b"
340360
341[[package]]361[[package]]
342name = "cookie-factory"362name = "cookie-factory"
345checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b"365checksum = "396de984970346b0d9e93d1415082923c679e5ae5c3ee3dcbd104f5610af126b"
346366
347[[package]]367[[package]]
348name = "cpufeatures"368name = "core-foundation-sys"
349version = "0.2.1"369version = "0.8.3"
350source = "registry+https://github.com/rust-lang/crates.io-index"370source = "registry+https://github.com/rust-lang/crates.io-index"
351checksum = "95059428f66df56b63431fdb4e1947ed2190586af5c5a8a8b71122bdf5a7f469"371checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
372
373[[package]]
374name = "countme"
352dependencies = [375version = "2.0.4"
353 "libc",376source = "registry+https://github.com/rust-lang/crates.io-index"
354]377checksum = "328b822bdcba4d4e402be8d9adb6eebf269f969f8eadef977a553ff3c4fbcb58"
355378
356[[package]]379[[package]]
357name = "crypto-bigint"380name = "cpufeatures"
358version = "0.2.11"381version = "0.2.5"
359source = "registry+https://github.com/rust-lang/crates.io-index"382source = "registry+https://github.com/rust-lang/crates.io-index"
360checksum = "f83bd3bb4314701c568e340cd8cf78c975aa0ca79e03d3f6d1677d5b0c9c0c03"383checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320"
361dependencies = [384dependencies = [
362 "generic-array",
363 "rand_core 0.6.3",
364 "subtle",385 "libc",
365]386]
366387
367[[package]]388[[package]]
368name = "crypto-common"389name = "crypto-common"
369version = "0.1.3"390version = "0.1.6"
370source = "registry+https://github.com/rust-lang/crates.io-index"391source = "registry+https://github.com/rust-lang/crates.io-index"
371checksum = "57952ca27b5e3606ff4dd79b0020231aaf9d6aa76dc05fd30137538c50bd3ce8"392checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3"
372dependencies = [393dependencies = [
373 "generic-array",394 "generic-array",
374 "typenum",395 "typenum",
375]396]
376397
377[[package]]398[[package]]
378name = "ctr"399name = "ctr"
379version = "0.9.1"400version = "0.9.2"
380source = "registry+https://github.com/rust-lang/crates.io-index"401source = "registry+https://github.com/rust-lang/crates.io-index"
381checksum = "0d14f329cfbaf5d0e06b5e87fff7e265d2673c5ea7d2c27691a2c107db1442a0"402checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835"
382dependencies = [403dependencies = [
383 "cipher 0.4.3",404 "cipher",
384]405]
385406
386[[package]]407[[package]]
396 "zeroize",417 "zeroize",
397]418]
419
420[[package]]
421name = "cxx"
422version = "1.0.89"
423source = "registry+https://github.com/rust-lang/crates.io-index"
424checksum = "bc831ee6a32dd495436e317595e639a587aa9907bef96fe6e6abc290ab6204e9"
425dependencies = [
426 "cc",
427 "cxxbridge-flags",
428 "cxxbridge-macro",
429 "link-cplusplus",
430]
431
432[[package]]
433name = "cxx-build"
434version = "1.0.89"
435source = "registry+https://github.com/rust-lang/crates.io-index"
436checksum = "94331d54f1b1a8895cd81049f7eaaaef9d05a7dcb4d1fd08bf3ff0806246789d"
437dependencies = [
438 "cc",
439 "codespan-reporting",
440 "once_cell",
441 "proc-macro2",
442 "quote",
443 "scratch",
444 "syn",
445]
446
447[[package]]
448name = "cxxbridge-flags"
449version = "1.0.89"
450source = "registry+https://github.com/rust-lang/crates.io-index"
451checksum = "48dcd35ba14ca9b40d6e4b4b39961f23d835dbb8eed74565ded361d93e1feb8a"
452
453[[package]]
454name = "cxxbridge-macro"
455version = "1.0.89"
456source = "registry+https://github.com/rust-lang/crates.io-index"
457checksum = "81bbeb29798b407ccd82a3324ade1a7286e0d29851475990b612670f6f5124d2"
458dependencies = [
459 "proc-macro2",
460 "quote",
461 "syn",
462]
398463
399[[package]]464[[package]]
400name = "dashmap"465name = "dashmap"
401version = "5.1.0"466version = "5.4.0"
402source = "registry+https://github.com/rust-lang/crates.io-index"467source = "registry+https://github.com/rust-lang/crates.io-index"
403checksum = "c0834a35a3fce649144119e18da2a4d8ed12ef3862f47183fd46f625d072d96c"468checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc"
404dependencies = [469dependencies = [
405 "cfg-if",470 "cfg-if",
471 "hashbrown 0.12.3",
472 "lock_api",
406 "num_cpus",473 "once_cell",
407 "parking_lot",474 "parking_lot_core",
408]475]
409476
410[[package]]477[[package]]
411name = "der"478name = "der"
412version = "0.4.5"479version = "0.6.1"
413source = "registry+https://github.com/rust-lang/crates.io-index"480source = "registry+https://github.com/rust-lang/crates.io-index"
414checksum = "79b71cca7d95d7681a4b3b9cdf63c8dbc3730d0584c2c74e31416d64a90493f4"481checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de"
415dependencies = [482dependencies = [
416 "const-oid",483 "const-oid",
417 "crypto-bigint",484 "zeroize",
418]485]
419486
420[[package]]487[[package]]
428495
429[[package]]496[[package]]
430name = "digest"497name = "digest"
431version = "0.10.3"498version = "0.10.6"
432source = "registry+https://github.com/rust-lang/crates.io-index"499source = "registry+https://github.com/rust-lang/crates.io-index"
433checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506"500checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f"
434dependencies = [501dependencies = [
435 "block-buffer 0.10.2",502 "block-buffer",
503 "const-oid",
436 "crypto-common",504 "crypto-common",
437 "subtle",505 "subtle",
438]506]
439507
440[[package]]508[[package]]
441name = "dprint-core"509name = "displaydoc"
442version = "0.51.0"510version = "0.2.3"
443source = "registry+https://github.com/rust-lang/crates.io-index"511source = "registry+https://github.com/rust-lang/crates.io-index"
444checksum = "036819ad3d310aef6ec2d2bacb83a4815f24e2ce715b68afc73ef395f392ae9f"512checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886"
445dependencies = [513dependencies = [
446 "anyhow",
447 "bumpalo",514 "proc-macro2",
448 "indexmap",
449 "rustc-hash",515 "quote",
450 "serde",516 "syn",
451]517]
452518
453[[package]]519[[package]]
454name = "env_logger"520name = "env_logger"
455version = "0.9.0"521version = "0.10.0"
456source = "registry+https://github.com/rust-lang/crates.io-index"522source = "registry+https://github.com/rust-lang/crates.io-index"
457checksum = "0b2cf0344971ee6c64c31be0d530793fba457d322dfec2810c453d0ef228f9c3"523checksum = "85cdab6a89accf66733ad5a1693a4dcced6aeff64602b634530dd73c1f3ee9f0"
458dependencies = [524dependencies = [
459 "atty",
460 "humantime",525 "humantime",
526 "is-terminal",
461 "log",527 "log",
462 "regex",528 "regex",
463 "termcolor",529 "termcolor",
464]530]
531
532[[package]]
533name = "errno"
534version = "0.2.8"
535source = "registry+https://github.com/rust-lang/crates.io-index"
536checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1"
537dependencies = [
538 "errno-dragonfly",
539 "libc",
540 "winapi",
541]
542
543[[package]]
544name = "errno-dragonfly"
545version = "0.1.2"
546source = "registry+https://github.com/rust-lang/crates.io-index"
547checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf"
548dependencies = [
549 "cc",
550 "libc",
551]
465552
466[[package]]553[[package]]
467name = "fastrand"554name = "fastrand"
468version = "1.7.0"555version = "1.8.0"
469source = "registry+https://github.com/rust-lang/crates.io-index"556source = "registry+https://github.com/rust-lang/crates.io-index"
470checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"557checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
471dependencies = [558dependencies = [
472 "instant",559 "instant",
473]560]
489 "age-core",576 "age-core",
490 "anyhow",577 "anyhow",
491 "async-trait",578 "async-trait",
492 "base64",579 "base64 0.21.0",
493 "chrono",580 "chrono",
494 "clap",581 "clap",
495 "futures",582 "futures",
500 "serde",587 "serde",
501 "serde_json",588 "serde_json",
502 "tempfile",589 "tempfile",
503 "time 0.3.7",590 "time 0.3.17",
504 "tokio",591 "tokio",
505 "tokio-util",592 "tokio-util",
506 "tracing",593 "tracing",
570657
571[[package]]658[[package]]
572name = "futures"659name = "futures"
573version = "0.3.21"660version = "0.3.26"
574source = "registry+https://github.com/rust-lang/crates.io-index"661source = "registry+https://github.com/rust-lang/crates.io-index"
575checksum = "f73fe65f54d1e12b726f517d3e2135ca3125a437b6d998caf1962961f7172d9e"662checksum = "13e2792b0ff0340399d58445b88fd9770e3489eff258a4cbc1523418f12abf84"
576dependencies = [663dependencies = [
577 "futures-channel",664 "futures-channel",
578 "futures-core",665 "futures-core",
585672
586[[package]]673[[package]]
587name = "futures-channel"674name = "futures-channel"
588version = "0.3.21"675version = "0.3.26"
589source = "registry+https://github.com/rust-lang/crates.io-index"676source = "registry+https://github.com/rust-lang/crates.io-index"
590checksum = "c3083ce4b914124575708913bca19bfe887522d6e2e6d0952943f5eac4a74010"677checksum = "2e5317663a9089767a1ec00a487df42e0ca174b61b4483213ac24448e4664df5"
591dependencies = [678dependencies = [
592 "futures-core",679 "futures-core",
593 "futures-sink",680 "futures-sink",
594]681]
595682
596[[package]]683[[package]]
597name = "futures-core"684name = "futures-core"
598version = "0.3.21"685version = "0.3.26"
599source = "registry+https://github.com/rust-lang/crates.io-index"686source = "registry+https://github.com/rust-lang/crates.io-index"
600checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"687checksum = "ec90ff4d0fe1f57d600049061dc6bb68ed03c7d2fbd697274c41805dcb3f8608"
601688
602[[package]]689[[package]]
603name = "futures-executor"690name = "futures-executor"
604version = "0.3.21"691version = "0.3.26"
605source = "registry+https://github.com/rust-lang/crates.io-index"692source = "registry+https://github.com/rust-lang/crates.io-index"
606checksum = "9420b90cfa29e327d0429f19be13e7ddb68fa1cccb09d65e5706b8c7a749b8a6"693checksum = "e8de0a35a6ab97ec8869e32a2473f4b1324459e14c29275d14b10cb1fd19b50e"
607dependencies = [694dependencies = [
608 "futures-core",695 "futures-core",
609 "futures-task",696 "futures-task",
612699
613[[package]]700[[package]]
614name = "futures-io"701name = "futures-io"
615version = "0.3.21"702version = "0.3.26"
616source = "registry+https://github.com/rust-lang/crates.io-index"703source = "registry+https://github.com/rust-lang/crates.io-index"
617checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"704checksum = "bfb8371b6fb2aeb2d280374607aeabfc99d95c72edfe51692e42d3d7f0d08531"
618705
619[[package]]706[[package]]
620name = "futures-macro"707name = "futures-macro"
621version = "0.3.21"708version = "0.3.26"
622source = "registry+https://github.com/rust-lang/crates.io-index"709source = "registry+https://github.com/rust-lang/crates.io-index"
623checksum = "33c1e13800337f4d4d7a316bf45a567dbcb6ffe087f16424852d97e97a91f512"710checksum = "95a73af87da33b5acf53acfebdc339fe592ecf5357ac7c0a7734ab9d8c876a70"
624dependencies = [711dependencies = [
625 "proc-macro2",712 "proc-macro2",
626 "quote",713 "quote",
629716
630[[package]]717[[package]]
631name = "futures-sink"718name = "futures-sink"
632version = "0.3.21"719version = "0.3.26"
633source = "registry+https://github.com/rust-lang/crates.io-index"720source = "registry+https://github.com/rust-lang/crates.io-index"
634checksum = "21163e139fa306126e6eedaf49ecdb4588f939600f0b1e770f4205ee4b7fa868"721checksum = "f310820bb3e8cfd46c80db4d7fb8353e15dfff853a127158425f31e0be6c8364"
635722
636[[package]]723[[package]]
637name = "futures-task"724name = "futures-task"
638version = "0.3.21"725version = "0.3.26"
639source = "registry+https://github.com/rust-lang/crates.io-index"726source = "registry+https://github.com/rust-lang/crates.io-index"
640checksum = "57c66a976bf5909d801bbef33416c41372779507e7a6b3a5e25e4749c58f776a"727checksum = "dcf79a1bf610b10f42aea489289c5a2c478a786509693b80cd39c44ccd936366"
641728
642[[package]]729[[package]]
643name = "futures-util"730name = "futures-util"
644version = "0.3.21"731version = "0.3.26"
645source = "registry+https://github.com/rust-lang/crates.io-index"732source = "registry+https://github.com/rust-lang/crates.io-index"
646checksum = "d8b7abd5d659d9b90c8cba917f6ec750a74e2dc23902ef9cd4cc8c8b22e6036a"733checksum = "9c1d6de3acfef38d2be4b1f543f553131788603495be83da675e180c8d6b7bd1"
647dependencies = [734dependencies = [
648 "futures-channel",735 "futures-channel",
649 "futures-core",736 "futures-core",
659746
660[[package]]747[[package]]
661name = "generic-array"748name = "generic-array"
662version = "0.14.5"749version = "0.14.6"
663source = "registry+https://github.com/rust-lang/crates.io-index"750source = "registry+https://github.com/rust-lang/crates.io-index"
664checksum = "fd48d33ec7f05fbfa152300fdad764757cbded343c1aa1cff2fbaf4134851803"751checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9"
665dependencies = [752dependencies = [
666 "typenum",753 "typenum",
667 "version_check",754 "version_check",
680767
681[[package]]768[[package]]
682name = "getrandom"769name = "getrandom"
683version = "0.2.4"770version = "0.2.8"
684source = "registry+https://github.com/rust-lang/crates.io-index"771source = "registry+https://github.com/rust-lang/crates.io-index"
685checksum = "418d37c8b1d42553c93648be529cb70f920d3baf8ef469b74b9638df426e0b4c"772checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31"
686dependencies = [773dependencies = [
687 "cfg-if",774 "cfg-if",
688 "libc",775 "libc",
689 "wasi 0.10.0+wasi-snapshot-preview1",776 "wasi 0.11.0+wasi-snapshot-preview1",
690]777]
778
779[[package]]
780name = "hashbrown"
781version = "0.9.1"
782source = "registry+https://github.com/rust-lang/crates.io-index"
783checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04"
691784
692[[package]]785[[package]]
693name = "hashbrown"786name = "hashbrown"
694version = "0.11.2"787version = "0.12.3"
695source = "registry+https://github.com/rust-lang/crates.io-index"788source = "registry+https://github.com/rust-lang/crates.io-index"
696checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"789checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
697790
698[[package]]791[[package]]
699name = "heck"792name = "heck"
700version = "0.4.0"793version = "0.4.1"
701source = "registry+https://github.com/rust-lang/crates.io-index"794source = "registry+https://github.com/rust-lang/crates.io-index"
702checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"795checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8"
703796
704[[package]]797[[package]]
705name = "hermit-abi"798name = "hermit-abi"
706version = "0.1.19"799version = "0.2.6"
707source = "registry+https://github.com/rust-lang/crates.io-index"800source = "registry+https://github.com/rust-lang/crates.io-index"
708checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"801checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7"
709dependencies = [802dependencies = [
710 "libc",803 "libc",
711]804]
725source = "registry+https://github.com/rust-lang/crates.io-index"818source = "registry+https://github.com/rust-lang/crates.io-index"
726checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"819checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e"
727dependencies = [820dependencies = [
728 "digest 0.10.3",821 "digest 0.10.6",
729]822]
730823
731[[package]]824[[package]]
747840
748[[package]]841[[package]]
749name = "i18n-config"842name = "i18n-config"
750version = "0.4.2"843version = "0.4.3"
751source = "registry+https://github.com/rust-lang/crates.io-index"844source = "registry+https://github.com/rust-lang/crates.io-index"
752checksum = "b62affcd43abfb51f3cbd8736f9407908dc5b44fc558a9be07460bbfd104d983"845checksum = "3d9f93ceee6543011739bc81699b5e0cf1f23f3a80364649b6d80de8636bc8df"
753dependencies = [846dependencies = [
754 "log",847 "log",
755 "serde",848 "serde",
761854
762[[package]]855[[package]]
763name = "i18n-embed"856name = "i18n-embed"
764version = "0.13.3"857version = "0.13.8"
765source = "registry+https://github.com/rust-lang/crates.io-index"858source = "registry+https://github.com/rust-lang/crates.io-index"
766checksum = "c1e64f2a432e58630bb5e01062c78e759efbf470805688ee3bb8fad78ffae6c4"859checksum = "2653dd1a8be0726315603f1c180b29f90e5b2a58f8b943d949d5170d9ad81101"
767dependencies = [860dependencies = [
861 "arc-swap",
768 "fluent",862 "fluent",
769 "fluent-langneg",863 "fluent-langneg",
770 "fluent-syntax",864 "fluent-syntax",
781875
782[[package]]876[[package]]
783name = "i18n-embed-fl"877name = "i18n-embed-fl"
784version = "0.6.4"878version = "0.6.5"
785source = "registry+https://github.com/rust-lang/crates.io-index"879source = "registry+https://github.com/rust-lang/crates.io-index"
786checksum = "9420a9718ef9d0ab727840a398e25408ea0daff9ba3c681707ba05485face98e"880checksum = "a425b9bbdc2e4cd797a2a79528662cb61894bd36db582e48da2c56c28eb727cd"
787dependencies = [881dependencies = [
788 "dashmap",882 "dashmap",
789 "find-crate",883 "find-crate",
814]908]
815909
816[[package]]910[[package]]
817name = "indexmap"911name = "iana-time-zone"
818version = "1.8.0"912version = "0.1.53"
819source = "registry+https://github.com/rust-lang/crates.io-index"913source = "registry+https://github.com/rust-lang/crates.io-index"
820checksum = "282a6247722caba404c065016bbfa522806e51714c34f5dfc3e4a3a46fcb4223"914checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765"
821dependencies = [915dependencies = [
916 "android_system_properties",
917 "core-foundation-sys",
822 "autocfg 1.1.0",918 "iana-time-zone-haiku",
919 "js-sys",
823 "hashbrown",920 "wasm-bindgen",
824 "serde",921 "winapi",
825]922]
923
924[[package]]
925name = "iana-time-zone-haiku"
926version = "0.1.1"
927source = "registry+https://github.com/rust-lang/crates.io-index"
928checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca"
929dependencies = [
930 "cxx",
931 "cxx-build",
932]
826933
827[[package]]934[[package]]
828name = "inout"935name = "inout"
855962
856[[package]]963[[package]]
857name = "intl_pluralrules"964name = "intl_pluralrules"
858version = "7.0.1"965version = "7.0.2"
859source = "registry+https://github.com/rust-lang/crates.io-index"966source = "registry+https://github.com/rust-lang/crates.io-index"
860checksum = "b18f988384267d7066cc2be425e6faf352900652c046b6971d2e228d3b1c5ecf"967checksum = "078ea7b7c29a2b4df841a7f6ac8775ff6074020c6776d48491ce2268e068f972"
861dependencies = [968dependencies = [
862 "tinystr",
863 "unic-langid",969 "unic-langid",
864]970]
971
972[[package]]
973name = "io-lifetimes"
974version = "1.0.5"
975source = "registry+https://github.com/rust-lang/crates.io-index"
976checksum = "1abeb7a0dd0f8181267ff8adc397075586500b81b28a73e8a0208b00fc170fb3"
977dependencies = [
978 "libc",
979 "windows-sys 0.45.0",
980]
865981
866[[package]]982[[package]]
867name = "io_tee"983name = "io_tee"
868version = "0.1.1"984version = "0.1.1"
869source = "registry+https://github.com/rust-lang/crates.io-index"985source = "registry+https://github.com/rust-lang/crates.io-index"
870checksum = "4b3f7cef34251886990511df1c61443aa928499d598a9473929ab5a90a527304"986checksum = "4b3f7cef34251886990511df1c61443aa928499d598a9473929ab5a90a527304"
987
988[[package]]
989name = "is-terminal"
990version = "0.4.2"
991source = "registry+https://github.com/rust-lang/crates.io-index"
992checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189"
993dependencies = [
994 "hermit-abi",
995 "io-lifetimes",
996 "rustix",
997 "windows-sys 0.42.0",
998]
871999
872[[package]]1000[[package]]
873name = "itoa"1001name = "itoa"
874version = "1.0.1"1002version = "1.0.5"
875source = "registry+https://github.com/rust-lang/crates.io-index"1003source = "registry+https://github.com/rust-lang/crates.io-index"
876checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"1004checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440"
1005
1006[[package]]
1007name = "js-sys"
1008version = "0.3.61"
1009source = "registry+https://github.com/rust-lang/crates.io-index"
1010checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730"
1011dependencies = [
1012 "wasm-bindgen",
1013]
8771014
878[[package]]1015[[package]]
879name = "lazy_static"1016name = "lazy_static"
8861023
887[[package]]1024[[package]]
888name = "libc"1025name = "libc"
889version = "0.2.132"1026version = "0.2.139"
890source = "registry+https://github.com/rust-lang/crates.io-index"1027source = "registry+https://github.com/rust-lang/crates.io-index"
891checksum = "8371e4e5341c3a96db127eb2465ac681ced4c433e01dd0e938adbef26ba93ba5"1028checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79"
8921029
893[[package]]1030[[package]]
894name = "libm"1031name = "libm"
895version = "0.2.2"1032version = "0.2.6"
896source = "registry+https://github.com/rust-lang/crates.io-index"1033source = "registry+https://github.com/rust-lang/crates.io-index"
897checksum = "33a33a362ce288760ec6a508b94caaec573ae7d3bbbd91b87aa0bad4456839db"1034checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb"
1035
1036[[package]]
1037name = "libmimalloc-sys"
1038version = "0.1.30"
1039source = "registry+https://github.com/rust-lang/crates.io-index"
1040checksum = "dd8c7cbf8b89019683667e347572e6d55a7df7ea36b0c4ce69961b0cde67b174"
1041dependencies = [
1042 "cc",
1043 "libc",
1044]
1045
1046[[package]]
1047name = "link-cplusplus"
1048version = "1.0.8"
1049source = "registry+https://github.com/rust-lang/crates.io-index"
1050checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5"
1051dependencies = [
1052 "cc",
1053]
8981054
899[[package]]1055[[package]]
900name = "linked-hash-map"1056name = "linked-hash-map"
901version = "0.5.4"1057version = "0.5.6"
902source = "registry+https://github.com/rust-lang/crates.io-index"1058source = "registry+https://github.com/rust-lang/crates.io-index"
903checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3"1059checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f"
1060
1061[[package]]
1062name = "linux-raw-sys"
1063version = "0.1.4"
1064source = "registry+https://github.com/rust-lang/crates.io-index"
1065checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4"
9041066
905[[package]]1067[[package]]
906name = "lock_api"1068name = "lock_api"
907version = "0.4.6"1069version = "0.4.9"
908source = "registry+https://github.com/rust-lang/crates.io-index"1070source = "registry+https://github.com/rust-lang/crates.io-index"
909checksum = "88943dd7ef4a2e5a4bfa2753aaab3013e34ce2533d1996fb18ef591e315e2b3b"1071checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df"
910dependencies = [1072dependencies = [
1073 "autocfg",
911 "scopeguard",1074 "scopeguard",
912]1075]
9131076
914[[package]]1077[[package]]
915name = "log"1078name = "log"
916version = "0.4.14"1079version = "0.4.17"
917source = "registry+https://github.com/rust-lang/crates.io-index"1080source = "registry+https://github.com/rust-lang/crates.io-index"
918checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710"1081checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
919dependencies = [1082dependencies = [
920 "cfg-if",1083 "cfg-if",
921]1084]
9371100
938[[package]]1101[[package]]
939name = "memchr"1102name = "memchr"
940version = "2.4.1"1103version = "2.5.0"
941source = "registry+https://github.com/rust-lang/crates.io-index"1104source = "registry+https://github.com/rust-lang/crates.io-index"
942checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"1105checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
9431106
944[[package]]1107[[package]]
945name = "memoffset"1108name = "memoffset"
946version = "0.6.5"1109version = "0.6.5"
947source = "registry+https://github.com/rust-lang/crates.io-index"1110source = "registry+https://github.com/rust-lang/crates.io-index"
948checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"1111checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
949dependencies = [1112dependencies = [
950 "autocfg 1.1.0",1113 "autocfg",
951]1114]
1115
1116[[package]]
1117name = "memoffset"
1118version = "0.7.1"
1119source = "registry+https://github.com/rust-lang/crates.io-index"
1120checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4"
1121dependencies = [
1122 "autocfg",
1123]
1124
1125[[package]]
1126name = "mimalloc"
1127version = "0.1.34"
1128source = "registry+https://github.com/rust-lang/crates.io-index"
1129checksum = "9dcb174b18635f7561a0c6c9fc2ce57218ac7523cf72c50af80e2d79ab8f3ba1"
1130dependencies = [
1131 "libmimalloc-sys",
1132]
9521133
953[[package]]1134[[package]]
954name = "minimal-lexical"1135name = "minimal-lexical"
9581139
959[[package]]1140[[package]]
960name = "mio"1141name = "mio"
961version = "0.8.0"1142version = "0.8.5"
962source = "registry+https://github.com/rust-lang/crates.io-index"1143source = "registry+https://github.com/rust-lang/crates.io-index"
963checksum = "ba272f85fa0b41fc91872be579b3bbe0f56b792aa361a380eb669469f68dafb2"1144checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de"
964dependencies = [1145dependencies = [
965 "libc",1146 "libc",
966 "log",1147 "log",
967 "miow",
968 "ntapi",1148 "wasi 0.11.0+wasi-snapshot-preview1",
969 "winapi",1149 "windows-sys 0.42.0",
970]1150]
971
972[[package]]
973name = "miow"
974version = "0.3.7"
975source = "registry+https://github.com/rust-lang/crates.io-index"
976checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
977dependencies = [
978 "winapi",
979]
9801151
981[[package]]1152[[package]]
982name = "nix"1153name = "nix"
983version = "0.25.0"1154version = "0.26.2"
984source = "registry+https://github.com/rust-lang/crates.io-index"1155source = "registry+https://github.com/rust-lang/crates.io-index"
985checksum = "e322c04a9e3440c327fca7b6c8a63e6890a32fa2ad689db972425f07e0d22abb"1156checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a"
986dependencies = [1157dependencies = [
987 "autocfg 1.1.0",
988 "bitflags",1158 "bitflags",
989 "cfg-if",1159 "cfg-if",
990 "libc",1160 "libc",
991 "memoffset",1161 "memoffset 0.7.1",
992 "pin-utils",1162 "pin-utils",
1163 "static_assertions",
993]1164]
9941165
995[[package]]1166[[package]]
996name = "nixlike"1167name = "nixlike"
997version = "0.1.0"1168version = "0.1.0"
998dependencies = [1169dependencies = [
999 "dprint-core",1170 "alejandra",
1000 "linked-hash-map",1171 "linked-hash-map",
1001 "peg",1172 "peg",
1173 "rnix",
1174 "ron",
1002 "serde",1175 "serde",
1176 "serde-transcode",
1177 "serde_json",
1003 "thiserror",1178 "thiserror",
1004]1179]
10051180
1006[[package]]1181[[package]]
1007name = "nom"1182name = "nom"
1008version = "7.1.0"1183version = "7.1.3"
1009source = "registry+https://github.com/rust-lang/crates.io-index"1184source = "registry+https://github.com/rust-lang/crates.io-index"
1010checksum = "1b1d11e1ef389c76fe5b81bcaf2ea32cf88b62bc494e19f493d0b30e7a930109"1185checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a"
1011dependencies = [1186dependencies = [
1012 "memchr",1187 "memchr",
1013 "minimal-lexical",1188 "minimal-lexical",
1014 "version_check",
1015]1189]
10161190
1017[[package]]1191[[package]]
1018name = "ntapi"1192name = "nu-ansi-term"
1019version = "0.3.7"1193version = "0.46.0"
1020source = "registry+https://github.com/rust-lang/crates.io-index"1194source = "registry+https://github.com/rust-lang/crates.io-index"
1021checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"1195checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84"
1022dependencies = [1196dependencies = [
1197 "overload",
1023 "winapi",1198 "winapi",
1024]1199]
10251200
1026[[package]]1201[[package]]
1027name = "num-bigint-dig"1202name = "num-bigint-dig"
1028version = "0.7.0"1203version = "0.8.2"
1029source = "registry+https://github.com/rust-lang/crates.io-index"1204source = "registry+https://github.com/rust-lang/crates.io-index"
1030checksum = "4547ee5541c18742396ae2c895d0717d0f886d8823b8399cdaf7b07d63ad0480"1205checksum = "2399c9463abc5f909349d8aa9ba080e0b88b3ce2885389b60b993f39b1a56905"
1031dependencies = [1206dependencies = [
1032 "autocfg 0.1.8",
1033 "byteorder",1207 "byteorder",
1034 "lazy_static",1208 "lazy_static",
1035 "libm",1209 "libm",
10431217
1044[[package]]1218[[package]]
1045name = "num-integer"1219name = "num-integer"
1046version = "0.1.44"1220version = "0.1.45"
1047source = "registry+https://github.com/rust-lang/crates.io-index"1221source = "registry+https://github.com/rust-lang/crates.io-index"
1048checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"1222checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
1049dependencies = [1223dependencies = [
1050 "autocfg 1.1.0",1224 "autocfg",
1051 "num-traits",1225 "num-traits",
1052]1226]
10531227
1054[[package]]1228[[package]]
1055name = "num-iter"1229name = "num-iter"
1056version = "0.1.42"1230version = "0.1.43"
1057source = "registry+https://github.com/rust-lang/crates.io-index"1231source = "registry+https://github.com/rust-lang/crates.io-index"
1058checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"1232checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
1059dependencies = [1233dependencies = [
1060 "autocfg 1.1.0",1234 "autocfg",
1061 "num-integer",1235 "num-integer",
1062 "num-traits",1236 "num-traits",
1063]1237]
10641238
1065[[package]]1239[[package]]
1066name = "num-traits"1240name = "num-traits"
1067version = "0.2.14"1241version = "0.2.15"
1068source = "registry+https://github.com/rust-lang/crates.io-index"1242source = "registry+https://github.com/rust-lang/crates.io-index"
1069checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"1243checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
1070dependencies = [1244dependencies = [
1071 "autocfg 1.1.0",1245 "autocfg",
1072 "libm",1246 "libm",
1073]1247]
10741248
1075[[package]]1249[[package]]
1076name = "num_cpus"1250name = "num_cpus"
1077version = "1.13.1"1251version = "1.15.0"
1078source = "registry+https://github.com/rust-lang/crates.io-index"1252source = "registry+https://github.com/rust-lang/crates.io-index"
1079checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"1253checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b"
1080dependencies = [1254dependencies = [
1081 "hermit-abi",1255 "hermit-abi",
1082 "libc",1256 "libc",
1083]1257]
1084
1085[[package]]
1086name = "num_threads"
1087version = "0.1.3"
1088source = "registry+https://github.com/rust-lang/crates.io-index"
1089checksum = "97ba99ba6393e2c3734791401b66902d981cb03bf190af674ca69949b6d5fb15"
1090dependencies = [
1091 "libc",
1092]
10931258
1094[[package]]1259[[package]]
1095name = "once_cell"1260name = "once_cell"
1096version = "1.9.0"1261version = "1.17.0"
1097source = "registry+https://github.com/rust-lang/crates.io-index"1262source = "registry+https://github.com/rust-lang/crates.io-index"
1098checksum = "da32515d9f6e6e489d7bc9d84c71b060db7247dc035bbe44eac88cf87486d8d5"1263checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66"
10991264
1100[[package]]1265[[package]]
1101name = "opaque-debug"1266name = "opaque-debug"
11051270
1106[[package]]1271[[package]]
1107name = "os_str_bytes"1272name = "os_str_bytes"
1108version = "6.0.0"1273version = "6.4.1"
1109source = "registry+https://github.com/rust-lang/crates.io-index"1274source = "registry+https://github.com/rust-lang/crates.io-index"
1110checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64"1275checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee"
1276
1277[[package]]
1111dependencies = [1278name = "overload"
1112 "memchr",1279version = "0.1.1"
1113]1280source = "registry+https://github.com/rust-lang/crates.io-index"
1281checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39"
11141282
1115[[package]]1283[[package]]
1116name = "parking_lot"1284name = "parking_lot"
1117version = "0.12.0"1285version = "0.12.1"
1118source = "registry+https://github.com/rust-lang/crates.io-index"1286source = "registry+https://github.com/rust-lang/crates.io-index"
1119checksum = "87f5ec2493a61ac0506c0f4199f99070cbe83857b0337006a30f3e6719b8ef58"1287checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
1120dependencies = [1288dependencies = [
1121 "lock_api",1289 "lock_api",
1122 "parking_lot_core",1290 "parking_lot_core",
1123]1291]
11241292
1125[[package]]1293[[package]]
1126name = "parking_lot_core"1294name = "parking_lot_core"
1127version = "0.9.1"1295version = "0.9.7"
1128source = "registry+https://github.com/rust-lang/crates.io-index"1296source = "registry+https://github.com/rust-lang/crates.io-index"
1129checksum = "28141e0cc4143da2443301914478dc976a61ffdb3f043058310c70df2fed8954"1297checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521"
1130dependencies = [1298dependencies = [
1131 "cfg-if",1299 "cfg-if",
1132 "libc",1300 "libc",
1133 "redox_syscall",1301 "redox_syscall",
1134 "smallvec",1302 "smallvec",
1135 "windows-sys",1303 "windows-sys 0.45.0",
1136]1304]
11371305
1138[[package]]1306[[package]]
1139name = "pbkdf2"1307name = "pbkdf2"
1140version = "0.10.1"1308version = "0.11.0"
1141source = "registry+https://github.com/rust-lang/crates.io-index"1309source = "registry+https://github.com/rust-lang/crates.io-index"
1142checksum = "271779f35b581956db91a3e55737327a03aa051e90b1c47aeb189508533adfd7"1310checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917"
1143dependencies = [1311dependencies = [
1144 "digest 0.10.3",1312 "digest 0.10.6",
1145]1313]
11461314
1147[[package]]1315[[package]]
1148name = "peg"1316name = "peg"
1149version = "0.8.0"1317version = "0.8.1"
1150source = "registry+https://github.com/rust-lang/crates.io-index"1318source = "registry+https://github.com/rust-lang/crates.io-index"
1151checksum = "af728fe826811af3b38c37e93de6d104485953ea373d656eebae53d6987fcd2c"1319checksum = "a07f2cafdc3babeebc087e499118343442b742cc7c31b4d054682cc598508554"
1152dependencies = [1320dependencies = [
1153 "peg-macros",1321 "peg-macros",
1154 "peg-runtime",1322 "peg-runtime",
1155]1323]
11561324
1157[[package]]1325[[package]]
1158name = "peg-macros"1326name = "peg-macros"
1159version = "0.8.0"1327version = "0.8.1"
1160source = "registry+https://github.com/rust-lang/crates.io-index"1328source = "registry+https://github.com/rust-lang/crates.io-index"
1161checksum = "4536be147b770b824895cbad934fccce8e49f14b4c4946eaa46a6e4a12fcdc16"1329checksum = "4a90084dc05cf0428428e3d12399f39faad19b0909f64fb9170c9fdd6d9cd49b"
1162dependencies = [1330dependencies = [
1163 "peg-runtime",1331 "peg-runtime",
1164 "proc-macro2",1332 "proc-macro2",
11671335
1168[[package]]1336[[package]]
1169name = "peg-runtime"1337name = "peg-runtime"
1170version = "0.8.0"1338version = "0.8.1"
1171source = "registry+https://github.com/rust-lang/crates.io-index"1339source = "registry+https://github.com/rust-lang/crates.io-index"
1172checksum = "f9b0efd3ba03c3a409d44d60425f279ec442bcf0b9e63ff4e410da31c8b0f69f"1340checksum = "9fa00462b37ead6d11a82c9d568b26682d78e0477dc02d1966c013af80969739"
1173
1174[[package]]
1175name = "pem-rfc7468"
1176version = "0.2.4"
1177source = "registry+https://github.com/rust-lang/crates.io-index"
1178checksum = "84e93a3b1cc0510b03020f33f21e62acdde3dcaef432edc95bea377fbd4c2cd4"
1179dependencies = [
1180 "base64ct",
1181]
11821341
1183[[package]]1342[[package]]
1184name = "pin-project"1343name = "pin-project"
1185version = "1.0.10"1344version = "1.0.12"
1186source = "registry+https://github.com/rust-lang/crates.io-index"1345source = "registry+https://github.com/rust-lang/crates.io-index"
1187checksum = "58ad3879ad3baf4e44784bc6a718a8698867bb991f8ce24d1bcbe2cfb4c3a75e"1346checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc"
1188dependencies = [1347dependencies = [
1189 "pin-project-internal",1348 "pin-project-internal",
1190]1349]
11911350
1192[[package]]1351[[package]]
1193name = "pin-project-internal"1352name = "pin-project-internal"
1194version = "1.0.10"1353version = "1.0.12"
1195source = "registry+https://github.com/rust-lang/crates.io-index"1354source = "registry+https://github.com/rust-lang/crates.io-index"
1196checksum = "744b6f092ba29c3650faf274db506afd39944f48420f6c86b17cfe0ee1cb36bb"1355checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55"
1197dependencies = [1356dependencies = [
1198 "proc-macro2",1357 "proc-macro2",
1199 "quote",1358 "quote",
12021361
1203[[package]]1362[[package]]
1204name = "pin-project-lite"1363name = "pin-project-lite"
1205version = "0.2.8"1364version = "0.2.9"
1206source = "registry+https://github.com/rust-lang/crates.io-index"1365source = "registry+https://github.com/rust-lang/crates.io-index"
1207checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c"1366checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
12081367
1209[[package]]1368[[package]]
1210name = "pin-utils"1369name = "pin-utils"
12141373
1215[[package]]1374[[package]]
1216name = "pkcs1"1375name = "pkcs1"
1217version = "0.2.4"1376version = "0.4.1"
1218source = "registry+https://github.com/rust-lang/crates.io-index"1377source = "registry+https://github.com/rust-lang/crates.io-index"
1219checksum = "116bee8279d783c0cf370efa1a94632f2108e5ef0bb32df31f051647810a4e2c"1378checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719"
1220dependencies = [1379dependencies = [
1221 "der",1380 "der",
1222 "pem-rfc7468",1381 "pkcs8",
1382 "spki",
1223 "zeroize",1383 "zeroize",
1224]1384]
12251385
1226[[package]]1386[[package]]
1227name = "pkcs8"1387name = "pkcs8"
1228version = "0.7.6"1388version = "0.9.0"
1229source = "registry+https://github.com/rust-lang/crates.io-index"1389source = "registry+https://github.com/rust-lang/crates.io-index"
1230checksum = "ee3ef9b64d26bad0536099c816c6734379e45bbd5f14798def6809e5cc350447"1390checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba"
1231dependencies = [1391dependencies = [
1232 "der",1392 "der",
1233 "pem-rfc7468",
1234 "pkcs1",
1235 "spki",1393 "spki",
1236 "zeroize",
1237]1394]
12381395
1239[[package]]1396[[package]]
1240name = "poly1305"1397name = "poly1305"
1241version = "0.7.2"1398version = "0.8.0"
1242source = "registry+https://github.com/rust-lang/crates.io-index"1399source = "registry+https://github.com/rust-lang/crates.io-index"
1243checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede"1400checksum = "8159bd90725d2df49889a078b54f4f79e87f1f8a8444194cdca81d38f5393abf"
1244dependencies = [1401dependencies = [
1245 "cpufeatures",1402 "cpufeatures",
1246 "opaque-debug",1403 "opaque-debug",
12491406
1250[[package]]1407[[package]]
1251name = "ppv-lite86"1408name = "ppv-lite86"
1252version = "0.2.16"1409version = "0.2.17"
1253source = "registry+https://github.com/rust-lang/crates.io-index"1410source = "registry+https://github.com/rust-lang/crates.io-index"
1254checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"1411checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de"
12551412
1256[[package]]1413[[package]]
1257name = "proc-macro-error"1414name = "proc-macro-error"
12791436
1280[[package]]1437[[package]]
1281name = "proc-macro2"1438name = "proc-macro2"
1282version = "1.0.36"1439version = "1.0.50"
1283source = "registry+https://github.com/rust-lang/crates.io-index"1440source = "registry+https://github.com/rust-lang/crates.io-index"
1284checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029"1441checksum = "6ef7d57beacfaf2d8aee5937dab7b7f28de3cb8b1828479bb5de2a7106f2bae2"
1285dependencies = [1442dependencies = [
1286 "unicode-xid",1443 "unicode-ident",
1287]1444]
12881445
1289[[package]]1446[[package]]
1290name = "quote"1447name = "quote"
1291version = "1.0.15"1448version = "1.0.23"
1292source = "registry+https://github.com/rust-lang/crates.io-index"1449source = "registry+https://github.com/rust-lang/crates.io-index"
1293checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145"1450checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b"
1294dependencies = [1451dependencies = [
1295 "proc-macro2",1452 "proc-macro2",
1296]1453]
1316dependencies = [1473dependencies = [
1317 "libc",1474 "libc",
1318 "rand_chacha 0.3.1",1475 "rand_chacha 0.3.1",
1319 "rand_core 0.6.3",1476 "rand_core 0.6.4",
1320]1477]
13211478
1322[[package]]1479[[package]]
1336checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"1493checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
1337dependencies = [1494dependencies = [
1338 "ppv-lite86",1495 "ppv-lite86",
1339 "rand_core 0.6.3",1496 "rand_core 0.6.4",
1340]1497]
13411498
1342[[package]]1499[[package]]
13501507
1351[[package]]1508[[package]]
1352name = "rand_core"1509name = "rand_core"
1353version = "0.6.3"1510version = "0.6.4"
1354source = "registry+https://github.com/rust-lang/crates.io-index"1511source = "registry+https://github.com/rust-lang/crates.io-index"
1355checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"1512checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c"
1356dependencies = [1513dependencies = [
1357 "getrandom 0.2.4",1514 "getrandom 0.2.8",
1358]1515]
13591516
1360[[package]]1517[[package]]
13681525
1369[[package]]1526[[package]]
1370name = "redox_syscall"1527name = "redox_syscall"
1371version = "0.2.10"1528version = "0.2.16"
1372source = "registry+https://github.com/rust-lang/crates.io-index"1529source = "registry+https://github.com/rust-lang/crates.io-index"
1373checksum = "8383f39639269cde97d255a32bdb68c047337295414940c68bdd30c2e13203ff"1530checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
1374dependencies = [1531dependencies = [
1375 "bitflags",1532 "bitflags",
1376]1533]
13771534
1378[[package]]1535[[package]]
1379name = "regex"1536name = "regex"
1380version = "1.5.4"1537version = "1.7.1"
1381source = "registry+https://github.com/rust-lang/crates.io-index"1538source = "registry+https://github.com/rust-lang/crates.io-index"
1382checksum = "d07a8629359eb56f1e2fb1652bb04212c072a87ba68546a04065d525673ac461"1539checksum = "48aaa5748ba571fb95cd2c85c09f629215d3a6ece942baa100950af03a34f733"
1383dependencies = [1540dependencies = [
1384 "aho-corasick",1541 "aho-corasick",
1385 "memchr",1542 "memchr",
13971554
1398[[package]]1555[[package]]
1399name = "regex-syntax"1556name = "regex-syntax"
1400version = "0.6.25"1557version = "0.6.28"
1401source = "registry+https://github.com/rust-lang/crates.io-index"1558source = "registry+https://github.com/rust-lang/crates.io-index"
1402checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"1559checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848"
14031560
1404[[package]]1561[[package]]
1405name = "remove_dir_all"1562name = "remove_dir_all"
1410 "winapi",1567 "winapi",
1411]1568]
1569
1570[[package]]
1571name = "rnix"
1572version = "0.10.2"
1573source = "registry+https://github.com/rust-lang/crates.io-index"
1574checksum = "8024a523e8836f1a5d051203dc00d833357fee94e351b51348dfaeca5364daa9"
1575dependencies = [
1576 "cbitset",
1577 "rowan",
1578 "smol_str",
1579]
1580
1581[[package]]
1582name = "ron"
1583version = "0.8.0"
1584source = "registry+https://github.com/rust-lang/crates.io-index"
1585checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff"
1586dependencies = [
1587 "base64 0.13.1",
1588 "bitflags",
1589 "serde",
1590]
1591
1592[[package]]
1593name = "rowan"
1594version = "0.12.6"
1595source = "registry+https://github.com/rust-lang/crates.io-index"
1596checksum = "a1b36e449f3702f3b0c821411db1cbdf30fb451726a9456dce5dabcd44420043"
1597dependencies = [
1598 "countme",
1599 "hashbrown 0.9.1",
1600 "memoffset 0.6.5",
1601 "rustc-hash",
1602 "text-size",
1603]
14121604
1413[[package]]1605[[package]]
1414name = "rsa"1606name = "rsa"
1415version = "0.5.0"1607version = "0.7.2"
1416source = "registry+https://github.com/rust-lang/crates.io-index"1608source = "registry+https://github.com/rust-lang/crates.io-index"
1417checksum = "e05c2603e2823634ab331437001b411b9ed11660fbc4066f3908c84a9439260d"1609checksum = "094052d5470cbcef561cb848a7209968c9f12dfa6d668f4bca048ac5de51099c"
1418dependencies = [1610dependencies = [
1419 "byteorder",1611 "byteorder",
1420 "digest 0.9.0",1612 "digest 0.10.6",
1421 "lazy_static",
1422 "num-bigint-dig",1613 "num-bigint-dig",
1423 "num-integer",1614 "num-integer",
1424 "num-iter",1615 "num-iter",
1425 "num-traits",1616 "num-traits",
1426 "pkcs1",1617 "pkcs1",
1427 "pkcs8",1618 "pkcs8",
1428 "rand 0.8.5",1619 "rand_core 0.6.4",
1620 "signature",
1621 "smallvec",
1429 "subtle",1622 "subtle",
1430 "zeroize",1623 "zeroize",
1431]1624]
14321625
1433[[package]]1626[[package]]
1434name = "rust-embed"1627name = "rust-embed"
1435version = "6.3.0"1628version = "6.4.2"
1436source = "registry+https://github.com/rust-lang/crates.io-index"1629source = "registry+https://github.com/rust-lang/crates.io-index"
1437checksum = "d40377bff8cceee81e28ddb73ac97f5c2856ce5522f0b260b763f434cdfae602"1630checksum = "283ffe2f866869428c92e0d61c2f35dfb4355293cdfdc48f49e895c15f1333d1"
1438dependencies = [1631dependencies = [
1439 "rust-embed-impl",1632 "rust-embed-impl",
1440 "rust-embed-utils",1633 "rust-embed-utils",
14431636
1444[[package]]1637[[package]]
1445name = "rust-embed-impl"1638name = "rust-embed-impl"
1446version = "6.2.0"1639version = "6.3.1"
1447source = "registry+https://github.com/rust-lang/crates.io-index"1640source = "registry+https://github.com/rust-lang/crates.io-index"
1448checksum = "94e763e24ba2bf0c72bc6be883f967f794a019fafd1b86ba1daff9c91a7edd30"1641checksum = "31ab23d42d71fb9be1b643fe6765d292c5e14d46912d13f3ae2815ca048ea04d"
1449dependencies = [1642dependencies = [
1450 "proc-macro2",1643 "proc-macro2",
1451 "quote",1644 "quote",
14561649
1457[[package]]1650[[package]]
1458name = "rust-embed-utils"1651name = "rust-embed-utils"
1459version = "7.1.0"1652version = "7.3.0"
1460source = "registry+https://github.com/rust-lang/crates.io-index"1653source = "registry+https://github.com/rust-lang/crates.io-index"
1461checksum = "ad22c7226e4829104deab21df575e995bfbc4adfad13a595e387477f238c1aec"1654checksum = "c1669d81dfabd1b5f8e2856b8bbe146c6192b0ba22162edc738ac0a5de18f054"
1462dependencies = [1655dependencies = [
1463 "sha2 0.9.9",1656 "sha2",
1464 "walkdir",1657 "walkdir",
1465]1658]
14661659
1470source = "registry+https://github.com/rust-lang/crates.io-index"1663source = "registry+https://github.com/rust-lang/crates.io-index"
1471checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"1664checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
1665
1666[[package]]
1667name = "rustix"
1668version = "0.36.7"
1669source = "registry+https://github.com/rust-lang/crates.io-index"
1670checksum = "d4fdebc4b395b7fbb9ab11e462e20ed9051e7b16e42d24042c776eca0ac81b03"
1671dependencies = [
1672 "bitflags",
1673 "errno",
1674 "io-lifetimes",
1675 "libc",
1676 "linux-raw-sys",
1677 "windows-sys 0.42.0",
1678]
14721679
1473[[package]]1680[[package]]
1474name = "ryu"1681name = "ryu"
1475version = "1.0.9"1682version = "1.0.12"
1476source = "registry+https://github.com/rust-lang/crates.io-index"1683source = "registry+https://github.com/rust-lang/crates.io-index"
1477checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"1684checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde"
14781685
1479[[package]]1686[[package]]
1480name = "salsa20"1687name = "salsa20"
1481version = "0.10.2"1688version = "0.10.2"
1482source = "registry+https://github.com/rust-lang/crates.io-index"1689source = "registry+https://github.com/rust-lang/crates.io-index"
1483checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213"1690checksum = "97a22f5af31f73a954c10289c93e8a50cc23d971e80ee446f1f6f7137a088213"
1484dependencies = [1691dependencies = [
1485 "cipher 0.4.3",1692 "cipher",
1486]1693]
14871694
1488[[package]]1695[[package]]
1500source = "registry+https://github.com/rust-lang/crates.io-index"1707source = "registry+https://github.com/rust-lang/crates.io-index"
1501checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"1708checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
1709
1710[[package]]
1711name = "scratch"
1712version = "1.0.3"
1713source = "registry+https://github.com/rust-lang/crates.io-index"
1714checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2"
15021715
1503[[package]]1716[[package]]
1504name = "scrypt"1717name = "scrypt"
1505version = "0.9.0"1718version = "0.10.0"
1506source = "registry+https://github.com/rust-lang/crates.io-index"1719source = "registry+https://github.com/rust-lang/crates.io-index"
1507checksum = "ba0aaf3911fff0d942c10a49779de7754699810fc7dbe3df515613b2ecc8195a"1720checksum = "9f9e24d2b632954ded8ab2ef9fea0a0c769ea56ea98bddbafbad22caeeadf45d"
1508dependencies = [1721dependencies = [
1509 "hmac",1722 "hmac",
1510 "pbkdf2",1723 "pbkdf2",
1511 "salsa20",1724 "salsa20",
1512 "sha2 0.10.3",1725 "sha2",
1513]1726]
15141727
1515[[package]]1728[[package]]
15291742
1530[[package]]1743[[package]]
1531name = "serde"1744name = "serde"
1532version = "1.0.136"1745version = "1.0.152"
1533source = "registry+https://github.com/rust-lang/crates.io-index"1746source = "registry+https://github.com/rust-lang/crates.io-index"
1534checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"1747checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb"
1535dependencies = [1748dependencies = [
1536 "serde_derive",1749 "serde_derive",
1537]1750]
15381751
1539[[package]]1752[[package]]
1540name = "serde_derive"1753name = "serde-transcode"
1541version = "1.0.136"1754version = "1.1.1"
1542source = "registry+https://github.com/rust-lang/crates.io-index"1755source = "registry+https://github.com/rust-lang/crates.io-index"
1543checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"1756checksum = "590c0e25c2a5bb6e85bf5c1bce768ceb86b316e7a01bdf07d2cb4ec2271990e2"
1544dependencies = [1757dependencies = [
1545 "proc-macro2",
1546 "quote",1758 "serde",
1547 "syn",
1548]1759]
15491760
1550[[package]]1761[[package]]
1551name = "serde_json"1762name = "serde_derive"
1552version = "1.0.79"1763version = "1.0.152"
1553source = "registry+https://github.com/rust-lang/crates.io-index"1764source = "registry+https://github.com/rust-lang/crates.io-index"
1554checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"1765checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e"
1555dependencies = [1766dependencies = [
1556 "itoa",1767 "proc-macro2",
1557 "ryu",1768 "quote",
1558 "serde",1769 "syn",
1559]1770]
15601771
1561[[package]]1772[[package]]
1562name = "sha2"1773name = "serde_json"
1563version = "0.9.9"1774version = "1.0.91"
1564source = "registry+https://github.com/rust-lang/crates.io-index"1775source = "registry+https://github.com/rust-lang/crates.io-index"
1565checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800"1776checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883"
1566dependencies = [1777dependencies = [
1567 "block-buffer 0.9.0",
1568 "cfg-if",1778 "itoa",
1569 "cpufeatures",1779 "ryu",
1570 "digest 0.9.0",
1571 "opaque-debug",1780 "serde",
1572]1781]
15731782
1574[[package]]1783[[package]]
1575name = "sha2"1784name = "sha2"
1576version = "0.10.3"1785version = "0.10.6"
1577source = "registry+https://github.com/rust-lang/crates.io-index"1786source = "registry+https://github.com/rust-lang/crates.io-index"
1578checksum = "899bf02746a2c92bf1053d9327dadb252b01af1f81f90cdb902411f518bc7215"1787checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0"
1579dependencies = [1788dependencies = [
1580 "cfg-if",1789 "cfg-if",
1581 "cpufeatures",1790 "cpufeatures",
1582 "digest 0.10.3",1791 "digest 0.10.6",
1583]1792]
15841793
1585[[package]]1794[[package]]
1600 "libc",1809 "libc",
1601]1810]
1811
1812[[package]]
1813name = "signature"
1814version = "1.6.4"
1815source = "registry+https://github.com/rust-lang/crates.io-index"
1816checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c"
1817dependencies = [
1818 "digest 0.10.6",
1819 "rand_core 0.6.4",
1820]
16021821
1603[[package]]1822[[package]]
1604name = "slab"1823name = "slab"
1605version = "0.4.5"1824version = "0.4.7"
1606source = "registry+https://github.com/rust-lang/crates.io-index"1825source = "registry+https://github.com/rust-lang/crates.io-index"
1607checksum = "9def91fd1e018fe007022791f865d0ccc9b3a0d5001e01aabb8b40e46000afb5"1826checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
1827dependencies = [
1828 "autocfg",
1829]
16081830
1609[[package]]1831[[package]]
1610name = "smallvec"1832name = "smallvec"
1611version = "1.8.0"1833version = "1.10.0"
1612source = "registry+https://github.com/rust-lang/crates.io-index"1834source = "registry+https://github.com/rust-lang/crates.io-index"
1613checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"1835checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0"
1836
1837[[package]]
1838name = "smol_str"
1839version = "0.1.23"
1840source = "registry+https://github.com/rust-lang/crates.io-index"
1841checksum = "7475118a28b7e3a2e157ce0131ba8c5526ea96e90ee601d9f6bb2e286a35ab44"
1842dependencies = [
1843 "serde",
1844]
16141845
1615[[package]]1846[[package]]
1616name = "socket2"1847name = "socket2"
1617version = "0.4.4"1848version = "0.4.7"
1618source = "registry+https://github.com/rust-lang/crates.io-index"1849source = "registry+https://github.com/rust-lang/crates.io-index"
1619checksum = "66d72b759436ae32898a2af0a14218dbf55efde3feeb170eb623637db85ee1e0"1850checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd"
1620dependencies = [1851dependencies = [
1621 "libc",1852 "libc",
1622 "winapi",1853 "winapi",
16301861
1631[[package]]1862[[package]]
1632name = "spki"1863name = "spki"
1633version = "0.4.1"1864version = "0.6.0"
1634source = "registry+https://github.com/rust-lang/crates.io-index"1865source = "registry+https://github.com/rust-lang/crates.io-index"
1635checksum = "5c01a0c15da1b0b0e1494112e7af814a678fec9bd157881b49beac661e9b6f32"1866checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b"
1636dependencies = [1867dependencies = [
1868 "base64ct",
1637 "der",1869 "der",
1638]1870]
1871
1872[[package]]
1873name = "static_assertions"
1874version = "1.1.0"
1875source = "registry+https://github.com/rust-lang/crates.io-index"
1876checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f"
16391877
1640[[package]]1878[[package]]
1641name = "strsim"1879name = "strsim"
16511889
1652[[package]]1890[[package]]
1653name = "syn"1891name = "syn"
1654version = "1.0.86"1892version = "1.0.107"
1655source = "registry+https://github.com/rust-lang/crates.io-index"1893source = "registry+https://github.com/rust-lang/crates.io-index"
1656checksum = "8a65b3f4ffa0092e9887669db0eae07941f023991ab58ea44da8fe8e2d511c6b"1894checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5"
1657dependencies = [1895dependencies = [
1658 "proc-macro2",1896 "proc-macro2",
1659 "quote",1897 "quote",
1660 "unicode-xid",1898 "unicode-ident",
1661]1899]
16621900
1663[[package]]1901[[package]]
16881926
1689[[package]]1927[[package]]
1690name = "termcolor"1928name = "termcolor"
1691version = "1.1.2"1929version = "1.2.0"
1692source = "registry+https://github.com/rust-lang/crates.io-index"1930source = "registry+https://github.com/rust-lang/crates.io-index"
1693checksum = "2dfed899f0eb03f32ee8c6a0aabdb8a7949659e3466561fc0adf54e26d88c5f4"1931checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6"
1694dependencies = [1932dependencies = [
1695 "winapi-util",1933 "winapi-util",
1696]1934]
16971935
1698[[package]]1936[[package]]
1699name = "terminal_size"1937name = "terminal_size"
1700version = "0.1.17"1938version = "0.2.3"
1701source = "registry+https://github.com/rust-lang/crates.io-index"1939source = "registry+https://github.com/rust-lang/crates.io-index"
1702checksum = "633c1a546cee861a1a6d0dc69ebeca693bf4296661ba7852b9d21d159e0506df"1940checksum = "cb20089a8ba2b69debd491f8d2d023761cbf196e999218c591fa1e7e15a21907"
1703dependencies = [1941dependencies = [
1704 "libc",1942 "rustix",
1705 "winapi",1943 "windows-sys 0.42.0",
1706]1944]
17071945
1708[[package]]1946[[package]]
1709name = "textwrap"1947name = "text-size"
1710version = "0.14.2"1948version = "1.1.0"
1711source = "registry+https://github.com/rust-lang/crates.io-index"1949source = "registry+https://github.com/rust-lang/crates.io-index"
1712checksum = "0066c8d12af8b5acd21e00547c3797fde4e8677254a7ee429176ccebbe93dd80"1950checksum = "288cb548dbe72b652243ea797201f3d481a0609a967980fcc5b2315ea811560a"
1713dependencies = [
1714 "terminal_size",
1715 "unicode-width",
1716]
17171951
1718[[package]]1952[[package]]
1719name = "thiserror"1953name = "thiserror"
1720version = "1.0.30"1954version = "1.0.38"
1721source = "registry+https://github.com/rust-lang/crates.io-index"1955source = "registry+https://github.com/rust-lang/crates.io-index"
1722checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"1956checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0"
1723dependencies = [1957dependencies = [
1724 "thiserror-impl",1958 "thiserror-impl",
1725]1959]
17261960
1727[[package]]1961[[package]]
1728name = "thiserror-impl"1962name = "thiserror-impl"
1729version = "1.0.30"1963version = "1.0.38"
1730source = "registry+https://github.com/rust-lang/crates.io-index"1964source = "registry+https://github.com/rust-lang/crates.io-index"
1731checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"1965checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f"
1732dependencies = [1966dependencies = [
1733 "proc-macro2",1967 "proc-macro2",
1734 "quote",1968 "quote",
17461980
1747[[package]]1981[[package]]
1748name = "time"1982name = "time"
1749version = "0.1.44"1983version = "0.1.45"
1750source = "registry+https://github.com/rust-lang/crates.io-index"1984source = "registry+https://github.com/rust-lang/crates.io-index"
1751checksum = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"1985checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a"
1752dependencies = [1986dependencies = [
1753 "libc",1987 "libc",
1754 "wasi 0.10.0+wasi-snapshot-preview1",1988 "wasi 0.10.0+wasi-snapshot-preview1",
17571991
1758[[package]]1992[[package]]
1759name = "time"1993name = "time"
1760version = "0.3.7"1994version = "0.3.17"
1761source = "registry+https://github.com/rust-lang/crates.io-index"1995source = "registry+https://github.com/rust-lang/crates.io-index"
1762checksum = "004cbc98f30fa233c61a38bc77e96a9106e65c88f2d3bef182ae952027e5753d"1996checksum = "a561bf4617eebd33bca6434b988f39ed798e527f51a1e797d0ee4f61c0a38376"
1763dependencies = [1997dependencies = [
1764 "libc",1998 "serde",
1765 "num_threads",1999 "time-core",
1766 "serde",2000 "time-macros",
1767]2001]
2002
2003[[package]]
2004name = "time-core"
2005version = "0.1.0"
2006source = "registry+https://github.com/rust-lang/crates.io-index"
2007checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd"
2008
2009[[package]]
2010name = "time-macros"
2011version = "0.2.6"
2012source = "registry+https://github.com/rust-lang/crates.io-index"
2013checksum = "d967f99f534ca7e495c575c62638eebc2898a8c84c119b89e250477bc4ba16b2"
2014dependencies = [
2015 "time-core",
2016]
17682017
1769[[package]]2018[[package]]
1770name = "tinystr"2019name = "tinystr"
1771version = "0.3.4"2020version = "0.7.1"
1772source = "registry+https://github.com/rust-lang/crates.io-index"2021source = "registry+https://github.com/rust-lang/crates.io-index"
1773checksum = "29738eedb4388d9ea620eeab9384884fc3f06f586a2eddb56bedc5885126c7c1"2022checksum = "7ac3f5b6856e931e15e07b478e98c8045239829a65f9156d4fa7e7788197a5ef"
2023dependencies = [
2024 "displaydoc",
2025]
17742026
1775[[package]]2027[[package]]
1776name = "tokio"2028name = "tokio"
1777version = "1.17.0"2029version = "1.25.0"
1778source = "registry+https://github.com/rust-lang/crates.io-index"2030source = "registry+https://github.com/rust-lang/crates.io-index"
1779checksum = "2af73ac49756f3f7c01172e34a23e5d0216f6c32333757c2c61feb2bbff5a5ee"2031checksum = "c8e00990ebabbe4c14c08aca901caed183ecd5c09562a12c824bb53d3c3fd3af"
1780dependencies = [2032dependencies = [
2033 "autocfg",
1781 "bytes",2034 "bytes",
1782 "libc",2035 "libc",
1783 "memchr",2036 "memchr",
1784 "mio",2037 "mio",
1785 "num_cpus",2038 "num_cpus",
1786 "once_cell",
1787 "parking_lot",2039 "parking_lot",
1788 "pin-project-lite",2040 "pin-project-lite",
1789 "signal-hook-registry",2041 "signal-hook-registry",
1790 "socket2",2042 "socket2",
1791 "tokio-macros",2043 "tokio-macros",
1792 "winapi",2044 "windows-sys 0.42.0",
1793]2045]
17942046
1795[[package]]2047[[package]]
1796name = "tokio-macros"2048name = "tokio-macros"
1797version = "1.7.0"2049version = "1.8.2"
1798source = "registry+https://github.com/rust-lang/crates.io-index"2050source = "registry+https://github.com/rust-lang/crates.io-index"
1799checksum = "b557f72f448c511a979e2564e55d74e6c4432fc96ff4f6241bc6bded342643b7"2051checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8"
1800dependencies = [2052dependencies = [
1801 "proc-macro2",2053 "proc-macro2",
1802 "quote",2054 "quote",
18052057
1806[[package]]2058[[package]]
1807name = "tokio-util"2059name = "tokio-util"
1808version = "0.7.0"2060version = "0.7.4"
1809source = "registry+https://github.com/rust-lang/crates.io-index"2061source = "registry+https://github.com/rust-lang/crates.io-index"
1810checksum = "64910e1b9c1901aaf5375561e35b9c057d95ff41a44ede043a03e09279eabaf1"2062checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740"
1811dependencies = [2063dependencies = [
1812 "bytes",2064 "bytes",
1813 "futures-core",2065 "futures-core",
1814 "futures-sink",2066 "futures-sink",
1815 "log",
1816 "pin-project-lite",2067 "pin-project-lite",
1817 "tokio",2068 "tokio",
2069 "tracing",
1818]2070]
18192071
1820[[package]]2072[[package]]
1821name = "toml"2073name = "toml"
1822version = "0.5.8"2074version = "0.5.11"
1823source = "registry+https://github.com/rust-lang/crates.io-index"2075source = "registry+https://github.com/rust-lang/crates.io-index"
1824checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa"2076checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234"
1825dependencies = [2077dependencies = [
1826 "serde",2078 "serde",
1827]2079]
18282080
1829[[package]]2081[[package]]
1830name = "tracing"2082name = "tracing"
1831version = "0.1.30"2083version = "0.1.37"
1832source = "registry+https://github.com/rust-lang/crates.io-index"2084source = "registry+https://github.com/rust-lang/crates.io-index"
1833checksum = "2d8d93354fe2a8e50d5953f5ae2e47a3fc2ef03292e7ea46e3cc38f549525fb9"2085checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8"
1834dependencies = [2086dependencies = [
1835 "cfg-if",2087 "cfg-if",
1836 "pin-project-lite",2088 "pin-project-lite",
18402092
1841[[package]]2093[[package]]
1842name = "tracing-attributes"2094name = "tracing-attributes"
1843version = "0.1.19"2095version = "0.1.23"
1844source = "registry+https://github.com/rust-lang/crates.io-index"2096source = "registry+https://github.com/rust-lang/crates.io-index"
1845checksum = "8276d9a4a3a558d7b7ad5303ad50b53d58264641b82914b7ada36bd762e7a716"2097checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a"
1846dependencies = [2098dependencies = [
1847 "proc-macro2",2099 "proc-macro2",
1848 "quote",2100 "quote",
18512103
1852[[package]]2104[[package]]
1853name = "tracing-core"2105name = "tracing-core"
1854version = "0.1.22"2106version = "0.1.30"
1855source = "registry+https://github.com/rust-lang/crates.io-index"2107source = "registry+https://github.com/rust-lang/crates.io-index"
1856checksum = "03cfcb51380632a72d3111cb8d3447a8d908e577d31beeac006f836383d29a23"2108checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
1857dependencies = [2109dependencies = [
1858 "lazy_static",2110 "once_cell",
1859 "valuable",2111 "valuable",
1860]2112]
18612113
1862[[package]]2114[[package]]
1863name = "tracing-log"2115name = "tracing-log"
1864version = "0.1.2"2116version = "0.1.3"
1865source = "registry+https://github.com/rust-lang/crates.io-index"2117source = "registry+https://github.com/rust-lang/crates.io-index"
1866checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3"2118checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
1867dependencies = [2119dependencies = [
1868 "lazy_static",2120 "lazy_static",
1869 "log",2121 "log",
18722124
1873[[package]]2125[[package]]
1874name = "tracing-subscriber"2126name = "tracing-subscriber"
1875version = "0.3.8"2127version = "0.3.16"
1876source = "registry+https://github.com/rust-lang/crates.io-index"2128source = "registry+https://github.com/rust-lang/crates.io-index"
1877checksum = "74786ce43333fcf51efe947aed9718fbe46d5c7328ec3f1029e818083966d9aa"2129checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70"
1878dependencies = [2130dependencies = [
1879 "ansi_term",2131 "matchers",
1880 "lazy_static",2132 "nu-ansi-term",
1881 "matchers",2133 "once_cell",
1882 "regex",2134 "regex",
1883 "sharded-slab",2135 "sharded-slab",
1884 "smallvec",2136 "smallvec",
18992151
1900[[package]]2152[[package]]
1901name = "typenum"2153name = "typenum"
1902version = "1.15.0"2154version = "1.16.0"
1903source = "registry+https://github.com/rust-lang/crates.io-index"2155source = "registry+https://github.com/rust-lang/crates.io-index"
1904checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"2156checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba"
19052157
1906[[package]]2158[[package]]
1907name = "unic-langid"2159name = "unic-langid"
1908version = "0.9.0"2160version = "0.9.1"
1909source = "registry+https://github.com/rust-lang/crates.io-index"2161source = "registry+https://github.com/rust-lang/crates.io-index"
1910checksum = "73328fcd730a030bdb19ddf23e192187a6b01cd98be6d3140622a89129459ce5"2162checksum = "398f9ad7239db44fd0f80fe068d12ff22d78354080332a5077dc6f52f14dcf2f"
1911dependencies = [2163dependencies = [
1912 "unic-langid-impl",2164 "unic-langid-impl",
1913]2165]
19142166
1915[[package]]2167[[package]]
1916name = "unic-langid-impl"2168name = "unic-langid-impl"
1917version = "0.9.0"2169version = "0.9.1"
1918source = "registry+https://github.com/rust-lang/crates.io-index"2170source = "registry+https://github.com/rust-lang/crates.io-index"
1919checksum = "1a4a8eeaf0494862c1404c95ec2f4c33a2acff5076f64314b465e3ddae1b934d"2171checksum = "e35bfd2f2b8796545b55d7d3fd3e89a0613f68a0d1c8bc28cb7ff96b411a35ff"
1920dependencies = [2172dependencies = [
1921 "serde",2173 "serde",
1922 "tinystr",2174 "tinystr",
1931 "version_check",2183 "version_check",
1932]2184]
2185
2186[[package]]
2187name = "unicode-ident"
2188version = "1.0.6"
2189source = "registry+https://github.com/rust-lang/crates.io-index"
2190checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc"
19332191
1934[[package]]2192[[package]]
1935name = "unicode-width"2193name = "unicode-width"
1936version = "0.1.9"2194version = "0.1.10"
1937source = "registry+https://github.com/rust-lang/crates.io-index"2195source = "registry+https://github.com/rust-lang/crates.io-index"
1938checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"2196checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b"
19392197
1940[[package]]2198[[package]]
1941name = "unicode-xid"2199name = "unicode-xid"
1942version = "0.2.2"2200version = "0.2.4"
1943source = "registry+https://github.com/rust-lang/crates.io-index"2201source = "registry+https://github.com/rust-lang/crates.io-index"
1944checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"2202checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c"
19452203
1946[[package]]2204[[package]]
1947name = "universal-hash"2205name = "universal-hash"
1948version = "0.4.1"2206version = "0.5.0"
1949source = "registry+https://github.com/rust-lang/crates.io-index"2207source = "registry+https://github.com/rust-lang/crates.io-index"
1950checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05"2208checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5"
1951dependencies = [2209dependencies = [
1952 "generic-array",2210 "crypto-common",
1953 "subtle",2211 "subtle",
1954]2212]
19552213
1988source = "registry+https://github.com/rust-lang/crates.io-index"2246source = "registry+https://github.com/rust-lang/crates.io-index"
1989checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"2247checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
2248
2249[[package]]
2250name = "wasi"
2251version = "0.11.0+wasi-snapshot-preview1"
2252source = "registry+https://github.com/rust-lang/crates.io-index"
2253checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
2254
2255[[package]]
2256name = "wasm-bindgen"
2257version = "0.2.84"
2258source = "registry+https://github.com/rust-lang/crates.io-index"
2259checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b"
2260dependencies = [
2261 "cfg-if",
2262 "wasm-bindgen-macro",
2263]
2264
2265[[package]]
2266name = "wasm-bindgen-backend"
2267version = "0.2.84"
2268source = "registry+https://github.com/rust-lang/crates.io-index"
2269checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9"
2270dependencies = [
2271 "bumpalo",
2272 "log",
2273 "once_cell",
2274 "proc-macro2",
2275 "quote",
2276 "syn",
2277 "wasm-bindgen-shared",
2278]
2279
2280[[package]]
2281name = "wasm-bindgen-macro"
2282version = "0.2.84"
2283source = "registry+https://github.com/rust-lang/crates.io-index"
2284checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5"
2285dependencies = [
2286 "quote",
2287 "wasm-bindgen-macro-support",
2288]
2289
2290[[package]]
2291name = "wasm-bindgen-macro-support"
2292version = "0.2.84"
2293source = "registry+https://github.com/rust-lang/crates.io-index"
2294checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6"
2295dependencies = [
2296 "proc-macro2",
2297 "quote",
2298 "syn",
2299 "wasm-bindgen-backend",
2300 "wasm-bindgen-shared",
2301]
2302
2303[[package]]
2304name = "wasm-bindgen-shared"
2305version = "0.2.84"
2306source = "registry+https://github.com/rust-lang/crates.io-index"
2307checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d"
19902308
1991[[package]]2309[[package]]
1992name = "winapi"2310name = "winapi"
20212339
2022[[package]]2340[[package]]
2023name = "windows-sys"2341name = "windows-sys"
2024version = "0.32.0"2342version = "0.42.0"
2025source = "registry+https://github.com/rust-lang/crates.io-index"2343source = "registry+https://github.com/rust-lang/crates.io-index"
2026checksum = "3df6e476185f92a12c072be4a189a0210dcdcf512a1891d6dff9edb874deadc6"2344checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7"
2027dependencies = [2345dependencies = [
2346 "windows_aarch64_gnullvm",
2028 "windows_aarch64_msvc",2347 "windows_aarch64_msvc",
2029 "windows_i686_gnu",2348 "windows_i686_gnu",
2030 "windows_i686_msvc",2349 "windows_i686_msvc",
2031 "windows_x86_64_gnu",2350 "windows_x86_64_gnu",
2351 "windows_x86_64_gnullvm",
2032 "windows_x86_64_msvc",2352 "windows_x86_64_msvc",
2033]2353]
2354
2355[[package]]
2356name = "windows-sys"
2357version = "0.45.0"
2358source = "registry+https://github.com/rust-lang/crates.io-index"
2359checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0"
2360dependencies = [
2361 "windows-targets",
2362]
2363
2364[[package]]
2365name = "windows-targets"
2366version = "0.42.1"
2367source = "registry+https://github.com/rust-lang/crates.io-index"
2368checksum = "8e2522491fbfcd58cc84d47aeb2958948c4b8982e9a2d8a2a35bbaed431390e7"
2369dependencies = [
2370 "windows_aarch64_gnullvm",
2371 "windows_aarch64_msvc",
2372 "windows_i686_gnu",
2373 "windows_i686_msvc",
2374 "windows_x86_64_gnu",
2375 "windows_x86_64_gnullvm",
2376 "windows_x86_64_msvc",
2377]
2378
2379[[package]]
2380name = "windows_aarch64_gnullvm"
2381version = "0.42.1"
2382source = "registry+https://github.com/rust-lang/crates.io-index"
2383checksum = "8c9864e83243fdec7fc9c5444389dcbbfd258f745e7853198f365e3c4968a608"
20342384
2035[[package]]2385[[package]]
2036name = "windows_aarch64_msvc"2386name = "windows_aarch64_msvc"
2037version = "0.32.0"2387version = "0.42.1"
2038source = "registry+https://github.com/rust-lang/crates.io-index"2388source = "registry+https://github.com/rust-lang/crates.io-index"
2039checksum = "d8e92753b1c443191654ec532f14c199742964a061be25d77d7a96f09db20bf5"2389checksum = "4c8b1b673ffc16c47a9ff48570a9d85e25d265735c503681332589af6253c6c7"
20402390
2041[[package]]2391[[package]]
2042name = "windows_i686_gnu"2392name = "windows_i686_gnu"
2043version = "0.32.0"2393version = "0.42.1"
2044source = "registry+https://github.com/rust-lang/crates.io-index"2394source = "registry+https://github.com/rust-lang/crates.io-index"
2045checksum = "6a711c68811799e017b6038e0922cb27a5e2f43a2ddb609fe0b6f3eeda9de615"2395checksum = "de3887528ad530ba7bdbb1faa8275ec7a1155a45ffa57c37993960277145d640"
20462396
2047[[package]]2397[[package]]
2048name = "windows_i686_msvc"2398name = "windows_i686_msvc"
2049version = "0.32.0"2399version = "0.42.1"
2050source = "registry+https://github.com/rust-lang/crates.io-index"2400source = "registry+https://github.com/rust-lang/crates.io-index"
2051checksum = "146c11bb1a02615db74680b32a68e2d61f553cc24c4eb5b4ca10311740e44172"2401checksum = "bf4d1122317eddd6ff351aa852118a2418ad4214e6613a50e0191f7004372605"
20522402
2053[[package]]2403[[package]]
2054name = "windows_x86_64_gnu"2404name = "windows_x86_64_gnu"
2055version = "0.32.0"2405version = "0.42.1"
2056source = "registry+https://github.com/rust-lang/crates.io-index"2406source = "registry+https://github.com/rust-lang/crates.io-index"
2057checksum = "c912b12f7454c6620635bbff3450962753834be2a594819bd5e945af18ec64bc"2407checksum = "c1040f221285e17ebccbc2591ffdc2d44ee1f9186324dd3e84e99ac68d699c45"
2408
2409[[package]]
2410name = "windows_x86_64_gnullvm"
2411version = "0.42.1"
2412source = "registry+https://github.com/rust-lang/crates.io-index"
2413checksum = "628bfdf232daa22b0d64fdb62b09fcc36bb01f05a3939e20ab73aaf9470d0463"
20582414
2059[[package]]2415[[package]]
2060name = "windows_x86_64_msvc"2416name = "windows_x86_64_msvc"
2061version = "0.32.0"2417version = "0.42.1"
2062source = "registry+https://github.com/rust-lang/crates.io-index"2418source = "registry+https://github.com/rust-lang/crates.io-index"
2063checksum = "504a2476202769977a040c6364301a3f65d0cc9e3fb08600b2bda150a0488316"2419checksum = "447660ad36a13288b1db4d4248e857b510e8c3a225c822ba4fb748c0aafecffd"
20642420
2065[[package]]2421[[package]]
2066name = "x25519-dalek"2422name = "x25519-dalek"
20752431
2076[[package]]2432[[package]]
2077name = "z85"2433name = "z85"
2078version = "3.0.4"2434version = "3.0.5"
2079source = "registry+https://github.com/rust-lang/crates.io-index"2435source = "registry+https://github.com/rust-lang/crates.io-index"
2080checksum = "af896e93db81340b74b65f74276a99b210c086f3d34ed0abf433182a462af856"2436checksum = "2a599daf1b507819c1121f0bf87fa37eb19daac6aff3aefefd4e6e2e0f2020fc"
20812437
2082[[package]]2438[[package]]
2083name = "zeroize"2439name = "zeroize"
2084version = "1.4.3"2440version = "1.5.7"
2085source = "registry+https://github.com/rust-lang/crates.io-index"2441source = "registry+https://github.com/rust-lang/crates.io-index"
2086checksum = "d68d9dcec5f9b43a30d38c49f91dfedfaac384cb8f085faca366c26207dd1619"2442checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f"
2087dependencies = [2443dependencies = [
2088 "zeroize_derive",2444 "zeroize_derive",
2089]2445]
20902446
2091[[package]]2447[[package]]
2092name = "zeroize_derive"2448name = "zeroize_derive"
2093version = "1.3.1"2449version = "1.3.3"
2094source = "registry+https://github.com/rust-lang/crates.io-index"2450source = "registry+https://github.com/rust-lang/crates.io-index"
2095checksum = "81e8f13fef10b63c06356d65d416b070798ddabcadc10d3ece0c5be9b3c7eddb"2451checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c"
2096dependencies = [2452dependencies = [
2097 "proc-macro2",2453 "proc-macro2",
2098 "quote",2454 "quote",
modifiedcmds/fleet/Cargo.tomldiffbeforeafterboth
13tempfile = "3.2"13tempfile = "3.2"
14once_cell = "1.5"14once_cell = "1.5"
15hostname = "0.3.1"15hostname = "0.3.1"
16age-core = "0.8.0"16age-core = "0.9.0"
17peg = "0.8.0"17peg = "0.8.0"
18nixlike = { path = "../../crates/nixlike" }18nixlike = { path = "../../crates/nixlike" }
19age = { version = "0.8.1", features = ["ssh", "armor"] }19age = { version = "0.9.0", features = ["ssh", "armor"] }
20base64 = "0.13.0"20base64 = "0.21.0"
21chrono = { version = "0.4.19", features = ["serde"] }21chrono = { version = "0.4.19", features = ["serde"] }
22z85 = "3.0.3"22z85 = "3.0.3"
23clap = { version = "3.1.0", features = [23clap = { version = "4.0.29", features = [
24 "derive",24 "derive",
25 "env",25 "env",
26 "wrap_help",26 "wrap_help",
modifiedcmds/fleet/src/cmds/build_systems.rsdiffbeforeafterboth
88
9#[derive(Parser, Clone)]9#[derive(Parser, Clone)]
10pub struct BuildSystems {10pub struct BuildSystems {
11 /// Jobs to run locally
12 #[clap(long)]
13 jobs: Option<usize>,
14 /// Do not continue on error11 /// Do not continue on error
15 #[clap(long)]12 #[clap(long)]
16 fail_fast: bool,13 fail_fast: bool,
20 #[clap(subcommand)]17 #[clap(subcommand)]
21 subcommand: Subcommand,18 subcommand: Subcommand,
22
23 /// --builders arg for nix
24 #[clap(long)]
25 builders: Option<String>,
26 /// --show-trace arg for nix
27 #[structopt(long)]
28 show_trace: bool,
29}19}
3020
31enum UploadAction {21enum UploadAction {
126 Command::new("nix")116 Command::new("nix")
127 };117 };
128 nix_build118 nix_build
129 .args(&[119 .args([
130 "build",120 "build",
131 "--impure",121 "--impure",
132 "--json",122 "--json",
133 // "--show-trace",123 // "--show-trace",
134 "--no-link",124 "--no-link",
135 "--out-link",125 "--out-link",
136 ])126 ])
127 .arg(&built)
137 .arg(&built)128 .arg(
129 config.configuration_attr_name(&format!(
130 "buildSystems.{}.{host}",
131 action.build_attr()
132 )),
133 )
138 .arg(134 .args(&config.nix_args);
139 config.configuration_attr_name(&format!(
140 "buildSystems.{}.{host}",
141 action.build_attr()
142 )),
143 );
144
145 if self.show_trace {
146 nix_build.arg("--show-trace");
147 }
148 if let Some(builders) = &self.builders {
149 nix_build.arg("--builders").arg(builders);
150 }
151 if let Some(jobs) = &self.jobs {
152 nix_build.arg("--max-jobs");
153 nix_build.arg(format!("{}", jobs));
154 }
155 if !self.fail_fast {
156 nix_build.arg("--keep-going");
157 }
158135
159 nix_build.run_nix().await?;136 nix_build.run_nix().await?;
160 let built = std::fs::canonicalize(built)?;137 let built = std::fs::canonicalize(built)?;
166 let mut tries = 0;143 let mut tries = 0;
167 loop {144 loop {
168 match Command::new("nix")145 match Command::new("nix")
169 .args(&["copy", "--to"])146 .args(["copy", "--to"])
170 .arg(format!("ssh://root@{}", host))147 .arg(format!("ssh://root@{}", host))
171 .arg(&built)148 .arg(&built)
172 .inherit_stdio()149 .inherit_stdio()
188 info!("switching generation");165 info!("switching generation");
189 config166 config
190 .command_on(&host, "nix-env", true)167 .command_on(&host, "nix-env", true)
191 .args(&["-p", "/nix/var/nix/profiles/system", "--set"])168 .args(["-p", "/nix/var/nix/profiles/system", "--set"])
192 .arg(&built)169 .arg(&built)
193 .inherit_stdio()170 .inherit_stdio()
194 .run()171 .run()
219 Command::new("nix")196 Command::new("nix")
220 };197 };
221 nix_build198 nix_build
222 .args(&["build", "--impure", "--no-link", "--out-link"])199 .args(["build", "--impure", "--no-link", "--out-link"])
200 .arg(&out)
223 .arg(&out)201 .arg(config.configuration_attr_name(&format!("buildSystems.sdImage.{}", host,)))
224 .arg(202 .args(&config.nix_args);
225 config.configuration_attr_name(&format!("buildSystems.sdImage.{}", host,)),
226 );
227 if let Some(builders) = &self.builders {
228 nix_build.arg("--builders").arg(builders);
229 }
230 if let Some(jobs) = &self.jobs {
231 nix_build.arg("--max-jobs");
232 nix_build.arg(format!("{}", jobs));
233 }
234 if !self.fail_fast {203 if !self.fail_fast {
235 nix_build.arg("--keep-going");204 nix_build.arg("--keep-going");
236 }205 }
250 Command::new("nix")219 Command::new("nix")
251 };220 };
252 nix_build221 nix_build
253 .args(&["build", "--impure", "--no-link", "--out-link"])222 .args(["build", "--impure", "--no-link", "--out-link"])
223 .arg(&out)
254 .arg(&out)224 .arg(
225 config.configuration_attr_name(&format!(
226 "buildSystems.installationCd.{}",
227 host,
228 )),
229 )
255 .arg(230 .args(&config.nix_args);
256 config.configuration_attr_name(&format!(
257 "buildSystems.installationCd.{}",
258 host,
259 )),
260 );
261 if let Some(builders) = &self.builders {
262 nix_build.arg("--builders").arg(builders);
263 }
264 if let Some(jobs) = &self.jobs {
265 nix_build.arg("--max-jobs");
266 nix_build.arg(format!("{}", jobs));
267 }
268 if !self.fail_fast {231 if !self.fail_fast {
269 nix_build.arg("--keep-going");232 nix_build.arg("--keep-going");
270 }233 }
modifiedcmds/fleet/src/cmds/info.rsdiffbeforeafterboth
1use std::collections::BTreeSet;1use std::{collections::BTreeSet, time::Duration};
22
3use crate::host::Config;3use crate::{command::CommandExt, host::Config};
4use anyhow::{ensure, Result};4use anyhow::{bail, ensure, Result};
5use clap::Parser;5use clap::Parser;
6use nixlike::format_nix;
7use serde_json::{json, Value};
8use tokio::{
9 fs::{self, File},
10 io::AsyncWriteExt,
11 process::Command,
12};
613
7#[derive(Parser)]14#[derive(Parser)]
8pub struct Info {15pub struct Info {
modifiedcmds/fleet/src/cmds/secrets/mod.rsdiffbeforeafterboth
2 fleetdata::{FleetSecret, FleetSharedSecret},2 fleetdata::{FleetSecret, FleetSharedSecret},
3 host::Config,3 host::Config,
4};4};
5use age::{Decryptor, Encryptor};
5use anyhow::{bail, Result};6use anyhow::{bail, ensure, Context, Result};
6use clap::Parser;7use clap::Parser;
7use futures::{StreamExt, TryStreamExt};8use futures::{StreamExt, TryStreamExt};
8use std::{9use std::{
10 collections::HashSet,
9 io::{self, Cursor, Read},11 io::{self, Cursor, Read, Write},
12 iter,
10 path::PathBuf,13 path::PathBuf,
11};14};
15use tracing::{info, warn};
1216
13#[derive(Parser)]17#[derive(Parser)]
14pub enum Secrets {18pub enum Secrets {
42 #[clap(long)]46 #[clap(long)]
43 public_file: Option<PathBuf>,47 public_file: Option<PathBuf>,
44 },48 },
49 /// Read secret from remote host, requires sudo on said host
50 Read {
51 name: String,
52 machine: String,
53 },
54 UpdateShared {
55 name: String,
56
57 machines: Option<Vec<String>>,
58
59 add_machines: Vec<String>,
60 remove_machines: Vec<String>,
61
62 /// Which host should we use to decrypt
63 prefer_identities: Vec<String>,
64 },
65 Regenerate,
45}66}
4667
47impl Secrets {68impl Secrets {
78 let recipients = recipients99 let recipients = recipients
79 .iter()100 .iter()
80 .cloned()101 .cloned()
81 .map(|r| Box::new(r) as Box<dyn age::Recipient>)102 .map(|r| Box::new(r) as Box<dyn age::Recipient + Send>)
82 .collect();103 .collect();
83 let mut encryptor = age::Encryptor::with_recipients(recipients)104 let mut encryptor = age::Encryptor::with_recipients(recipients)
105 .expect("recipients provided")
84 .wrap_output(&mut encrypted)?;106 .wrap_output(&mut encrypted)?;
85 io::copy(&mut Cursor::new(input), &mut encryptor)?;107 io::copy(&mut Cursor::new(input), &mut encryptor)?;
86 encryptor.finish()?;108 encryptor.finish()?;
101 secret,123 secret,
102 public: match (public, public_file) {124 public: match (public, public_file) {
103 (Some(v), None) => Some(v),125 (Some(v), None) => Some(v),
104 (None, Some(v)) => Some(std::fs::read_to_string(&v)?),126 (None, Some(v)) => Some(std::fs::read_to_string(v)?),
105 (Some(_), Some(_)) => {127 (Some(_), Some(_)) => {
106 bail!("only public or public_file should be set")128 bail!("only public or public_file should be set")
107 }129 }
123 let secret = {145 let secret = {
124 let mut input = vec![];146 let mut input = vec![];
125 io::stdin().read_to_end(&mut input)?;147 io::stdin().read_to_end(&mut input)?;
148 if input.is_empty() {
149 bail!("no data provided")
150 }
126151
127 let mut encrypted = vec![];152 let mut encrypted = vec![];
128 let recipient = Box::new(recipient) as Box<dyn age::Recipient>;153 let recipient = Box::new(recipient) as Box<dyn age::Recipient + Send>;
129 let mut encryptor = age::Encryptor::with_recipients(vec![recipient])154 let mut encryptor = age::Encryptor::with_recipients(vec![recipient])
155 .expect("recipients provided")
130 .wrap_output(&mut encrypted)?;156 .wrap_output(&mut encrypted)?;
131 io::copy(&mut Cursor::new(input), &mut encryptor)?;157 io::copy(&mut Cursor::new(input), &mut encryptor)?;
132 encryptor.finish()?;158 encryptor.finish()?;
145 secret,171 secret,
146 public: match (public, public_file) {172 public: match (public, public_file) {
147 (Some(v), None) => Some(v),173 (Some(v), None) => Some(v),
148 (None, Some(v)) => Some(std::fs::read_to_string(&v)?),174 (None, Some(v)) => Some(std::fs::read_to_string(v)?),
149 (Some(_), Some(_)) => bail!("only public or public_file should be set"),175 (Some(_), Some(_)) => bail!("only public or public_file should be set"),
150 (None, None) => None,176 (None, None) => None,
151 },177 },
152 },178 },
153 );179 );
154 }180 }
181 // TODO: Instead of using sudo, decode secret on remote machine
182 #[allow(clippy::await_holding_refcell_ref)]
183 Secrets::Read { name, machine } => {
184 let data = config.data();
185
186 let Some(host_secrets) = data.host_secrets.get(&machine) else {
187 bail!("no secrets for machine {machine}");
188 };
189 let Some(secret) = host_secrets.get(&name) else {
190 bail!("machine {machine} has no secret {name}");
191 };
192 if secret.secret.is_empty() {
193 bail!("no secret {name}");
194 }
195 let identity = config.identity(&machine).await?;
196 let decryptor = Decryptor::new(Cursor::new(&secret.secret))?;
197 let decryptor = match decryptor {
198 Decryptor::Recipients(r) => r,
199 Decryptor::Passphrase(_) => bail!("should be recipients"),
200 };
201 let mut decryptor = decryptor
202 .decrypt(iter::once(&identity as &dyn age::Identity))
203 .context("failed to decrypt, wrong key?")?;
204
205 let mut decrypted = Vec::new();
206 decryptor
207 .read_to_end(&mut decrypted)
208 .context("failed to decrypt")?;
209 // secret.secret
210 std::io::stdout().lock().write_all(&decrypted)?;
211 }
212 Secrets::UpdateShared {
213 name,
214 machines,
215 mut add_machines,
216 mut remove_machines,
217 prefer_identities,
218 } => {
219 let mut data = config.data_mut();
220 if machines.is_none() && add_machines.is_empty() && remove_machines.is_empty() {
221 bail!("no operation");
222 }
223
224 let Some(mut secret) = data.shared_secrets.get_mut(&name) else {
225 bail!("no shared secret {name}");
226 };
227 if secret.secret.secret.is_empty() {
228 bail!("no secret");
229 }
230
231 let initial_machines = secret.owners.clone();
232 let mut target_machines = secret.owners.clone();
233
234 // ensure!(machines.is_some() || !add_machines.is_empty() || )
235 if let Some(machines) = machines {
236 ensure!(
237 add_machines.is_empty() && remove_machines.is_empty(),
238 "can't combine --machines and --add-machines/--remove-machines"
239 );
240 let target = initial_machines.iter().collect::<HashSet<_>>();
241 let source = machines.iter().collect::<HashSet<_>>();
242 for removed in target.difference(&source) {
243 remove_machines.push((*removed).clone());
244 }
245 for added in source.difference(&target) {
246 add_machines.push((*added).clone());
247 }
248 }
249
250 for machine in &remove_machines {
251 let mut removed = false;
252 while let Some(pos) = target_machines.iter().position(|m| m == machine) {
253 target_machines.swap_remove(pos);
254 removed = true;
255 }
256 if !removed {
257 bail!("secret is not enabled for {machine}");
258 }
259 }
260 for machine in &add_machines {
261 if target_machines.iter().any(|m| m == machine) {
262 warn!("secret is already added to {machine}");
263 }
264 }
265 if remove_machines.is_empty() {
266 warn!("secret will not be regenerated for removed machines, and until host rebuild, they will still possess the ability to decode secret");
267 }
268 if target_machines.is_empty() {
269 info!("no machines left for secret, removing it");
270 data.shared_secrets.remove(&name);
271 return Ok(());
272 }
273
274 let identity_holder = if !prefer_identities.is_empty() {
275 prefer_identities
276 .iter()
277 .find(|i| initial_machines.iter().any(|s| s == *i))
278 } else {
279 secret.owners.first()
280 };
281 let Some(identity_holder) = identity_holder else {
282 bail!("no available holder found");
283 };
284 let target_recipients = futures::stream::iter(&target_machines)
285 .flat_map(|m| futures::stream::once(config.recipient(m)))
286 .collect::<Vec<_>>()
287 .await
288 .into_iter()
289 .map(|v| v.map(|v| Box::new(v) as Box<dyn age::Recipient + Send>))
290 .collect::<Result<Vec<_>>>()?;
291
292 let identity = config.identity(identity_holder).await?;
293 let decryptor = Decryptor::new(Cursor::new(&secret.secret.secret))?;
294 let decryptor = match decryptor {
295 Decryptor::Recipients(r) => r,
296 Decryptor::Passphrase(_) => bail!("should be recipients"),
297 };
298 let mut decryptor = decryptor
299 .decrypt(iter::once(&identity as &dyn age::Identity))
300 .context("failed to decrypt, wrong key?")?;
301
302 let mut decrypted = Vec::new();
303 decryptor
304 .read_to_end(&mut decrypted)
305 .context("failed to decrypt")?;
306
307 let mut encrypted = vec![];
308 let mut encryptor = Encryptor::with_recipients(target_recipients)
309 .expect("recipients provided")
310 .wrap_output(&mut encrypted)?;
311 io::copy(&mut Cursor::new(decrypted), &mut encryptor)?;
312 encryptor.finish()?;
313
314 secret.secret.secret = encrypted;
315 }
316 Secrets::Regenerate => {
317 // config.data_mut().shared_secrets
318 {
319 let expected_shared_set =
320 config.shared_config_attr_names("sharedSecrets").await?;
321 let expected_shared_set = expected_shared_set.iter().collect::<HashSet<_>>();
322 let shared_set = config.data();
323 let shared_set = shared_set.shared_secrets.keys().collect::<HashSet<_>>();
324 for removed in expected_shared_set.difference(&shared_set) {
325 warn!("secret needs to be generated: {removed}")
326 }
327 }
328 let mut to_remove = Vec::new();
329 for (name, data) in &config.data().shared_secrets {
330 let expected_owners: Vec<String> = config
331 .shared_config_attr(&format!("sharedSecrets.\"{name}\".expectedOwners"))
332 .await?;
333 if expected_owners.is_empty() {
334 warn!("secret was removed from fleet config: {name}, removing from data");
335 to_remove.push(name.to_string());
336 continue;
337 }
338 let set = data.owners.iter().collect::<HashSet<_>>();
339 let expected_set = expected_owners.iter().collect::<HashSet<_>>();
340 if set != expected_set {
341 warn!("reconfiguring owners for {name}");
342 }
343 }
344 for k in to_remove {
345 config.data_mut().shared_secrets.remove(&k);
346 }
347 }
155 }348 }
156 Ok(())349 Ok(())
157 }350 }
modifiedcmds/fleet/src/command.rsdiffbeforeafterboth
128 };128 };
129 match log {129 match log {
130 NixLog::Msg { msg, raw_msg, .. } => {130 NixLog::Msg { msg, raw_msg, .. } => {
131 if !(msg.ends_with(" is dirty") && msg.contains("warning:") && msg.contains(" Git tree ")) {131 if !(msg.starts_with("\u{1b}[35;1mwarning:\u{1b}[0m Git tree '") && msg.ends_with("' is dirty"))
132 && !msg.starts_with("\u{1b}[35;1mwarning:\u{1b}[0m not writing modified lock file of flake")
133 && msg != "\u{1b}[35;1mwarning:\u{1b}[0m \u{1b}[31;1merror:\u{1b}[0m SQLite database '\u{1b}[35;1m/nix/var/nix/db/db.sqlite\u{1b}[0m' is busy" {
134 if let Some(raw_msg) = raw_msg {
135 info!(target: "nix", "{raw_msg}\n{msg}")
136 }else {
132 info!(target: "nix", "{}", raw_msg.unwrap_or(msg))137 info!(target: "nix", "{msg}")
138
133 }139 }
140 }
134 },141 },
135 NixLog::Start { ref fields, typ, .. } if typ == 105 && !fields.is_empty() => {142 NixLog::Start { ref fields, typ, .. } if typ == 105 && !fields.is_empty() => {
136 if let [LogField::String(drv), ..] = &fields[..] {143 if let [LogField::String(drv), ..] = &fields[..] {
163 NixLog::Start { text, level: 1, typ: 111, .. } if text.starts_with("waiting for a machine to build ") => {170 NixLog::Start { text, level: 1, typ: 111, .. } if text.starts_with("waiting for a machine to build ") => {
164 // Useless repeating notification about build171 // Useless repeating notification about build
165 }172 }
173 NixLog::Start { text, level: 3, typ: 111, .. } if text.starts_with("resolved derivation: ") => {
174 // CA resolved
175 }
166 NixLog::Stop { .. } => {},176 NixLog::Stop { .. } => {},
167 NixLog::Result { .. } => {},177 NixLog::Result { .. } => {},
168 _ => warn!("unknown log: {:?}", log)178 _ => warn!("unknown log: {:?}", log)
modifiedcmds/fleet/src/fleetdata.rsdiffbeforeafterboth
1use anyhow::{bail, Result};
1use chrono::{DateTime, Utc};2use chrono::{DateTime, Utc};
3use nixlike::format_nix;
2use serde::{Deserialize, Deserializer, Serialize, Serializer};4use serde::{Deserialize, Deserializer, Serialize, Serializer};
5use serde_json::{json, Value};
3use std::collections::BTreeMap;6use std::collections::BTreeMap;
7use tempfile::TempDir;
8use tokio::{
9 fs::{self, File},
10 io::AsyncWriteExt,
11 process::Command,
12};
13
14use crate::command::CommandExt;
415
5#[derive(Serialize, Deserialize, Default)]16#[derive(Serialize, Deserialize, Default)]
6#[serde(rename_all = "camelCase")]17#[serde(rename_all = "camelCase")]
52where63where
53 S: Serializer,64 S: Serializer,
54{65{
55 serializer.serialize_str(&z85::encode(&key))66 serializer.serialize_str(&z85::encode(key))
56}67}
5768
58fn from_z85<'de, D>(deserializer: D) -> Result<Vec<u8>, D::Error>69fn from_z85<'de, D>(deserializer: D) -> Result<Vec<u8>, D::Error>
61{72{
62 use serde::de::Error;73 use serde::de::Error;
63 String::deserialize(deserializer)74 String::deserialize(deserializer)
64 .and_then(|string| z85::decode(&string).map_err(|err| Error::custom(err.to_string())))75 .and_then(|string| z85::decode(string).map_err(|err| Error::custom(err.to_string())))
65}76}
77
78pub async fn dummy_flake() -> Result<TempDir> {
79 let data_str = fs::read_to_string("fleet.nix").await?;
80
81 let mut cmd = Command::new("nix");
82 cmd.arg("flake").arg("metadata").arg("--json");
83
84 let flake_dir = tempfile::tempdir()?;
85 let mut flake_nix = flake_dir.path().to_path_buf();
86 flake_nix.push("flake.nix");
87 // flake_dir
88
89 File::create(&flake_nix)
90 .await?
91 .write_all(
92 format_nix(&format!(
93 "
94 {{
95 outputs = {{self, ...}}: {{
96 data = {data_str};
97 }};
98 }}
99 "
100 ))
101 .as_bytes(),
102 )
103 .await?;
104
105 // std::thread::sleep(Duration::MAX);
106 // flake_dir.close()
107 // FIXME
108 dbg!(&flake_nix);
109 Ok(flake_dir)
110}
66111
modifiedcmds/fleet/src/host.rsdiffbeforeafterboth
2 cell::{Ref, RefCell, RefMut},2 cell::{Ref, RefCell, RefMut},
3 env::current_dir,3 env::current_dir,
4 ffi::{OsStr, OsString},4 ffi::{OsStr, OsString},
5 io::Write,
5 ops::Deref,6 ops::Deref,
6 path::PathBuf,7 path::PathBuf,
7 sync::Arc,8 sync::Arc,
10use anyhow::Result;11use anyhow::Result;
11use clap::{ArgGroup, Parser};12use clap::{ArgGroup, Parser};
12use serde::de::DeserializeOwned;13use serde::de::DeserializeOwned;
14use tempfile::{NamedTempFile, TempDir};
13use tokio::process::Command;15use tokio::process::Command;
1416
15use crate::{command::CommandExt, fleetdata::FleetData};17use crate::{
18 command::CommandExt,
19 fleetdata::{dummy_flake, FleetData},
20};
1621
17pub struct FleetConfigInternals {22pub struct FleetConfigInternals {
18 pub local_system: String,23 pub local_system: String,
19 pub directory: PathBuf,24 pub directory: PathBuf,
20 pub opts: FleetOpts,25 pub opts: FleetOpts,
21 pub data: RefCell<FleetData>,26 pub data: RefCell<FleetData>,
27 pub nix_args: Vec<OsString>,
22}28}
2329
24#[derive(Clone)]30#[derive(Clone)]
80 Command::new("nix")86 Command::new("nix")
81 .arg("eval")87 .arg("eval")
82 .arg(self.configuration_attr_name("configuredHosts"))88 .arg(self.configuration_attr_name("configuredHosts"))
83 .args(&["--apply", "builtins.attrNames", "--json", "--show-trace"])89 .args(["--apply", "builtins.attrNames", "--json", "--show-trace"])
90 .args(&self.nix_args)
84 .run_nix_json()91 .run_nix_json()
85 .await92 .await
86 }93 }
94 pub async fn shared_config_attr<T: DeserializeOwned>(&self, attr: &str) -> Result<T> {
95 Command::new("nix")
96 .arg("eval")
97 .arg(self.configuration_attr_name(&format!("configUnchecked.{}", attr)))
98 .args(["--json", "--show-trace"])
99 .args(&self.nix_args)
100 .run_nix_json()
101 .await
102 }
103 pub async fn shared_config_attr_names(&self, attr: &str) -> Result<Vec<String>> {
104 Command::new("nix")
105 .arg("eval")
106 .arg(self.configuration_attr_name(&format!("configUnchecked.{}", attr)))
107 .args(["--apply", "builtins.attrNames"])
108 .args(["--json", "--show-trace"])
109 .args(&self.nix_args)
110 .run_nix_json()
111 .await
112 }
87 pub async fn config_attr<T: DeserializeOwned>(&self, host: &str, attr: &str) -> Result<T> {113 pub async fn config_attr<T: DeserializeOwned>(&self, host: &str, attr: &str) -> Result<T> {
88 Command::new("nix")114 Command::new("nix")
89 .arg("eval")115 .arg("eval")
93 host, attr119 host, attr
94 )),120 )),
95 )121 )
96 .args(&["--json", "--show-trace"])122 .args(["--json", "--show-trace"])
123 .args(&self.nix_args)
97 .run_nix_json()124 .run_nix_json()
98 .await125 .await
99 }126 }
106 }133 }
107134
108 pub fn save(&self) -> Result<()> {135 pub fn save(&self) -> Result<()> {
109 let mut fleet_data_path = self.directory.clone();136 let mut tempfile = NamedTempFile::new_in(self.directory.clone())?;
110 fleet_data_path.push("fleet.nix");
111 let data = nixlike::serialize(&self.data() as &FleetData)?;137 let data = nixlike::serialize(&self.data() as &FleetData)?;
112 std::fs::write(138 tempfile.write_all(
113 fleet_data_path,
114 format!(139 format!(
115 "# This file contains fleet state and shouldn't be edited by hand\n\n{}\n",140 "# This file contains fleet state and shouldn't be edited by hand\n\n{}\n",
116 data141 data
117 ),142 )
143 .as_bytes(),
118 )?;144 )?;
145 let mut fleet_data_path = self.directory.clone();
146 fleet_data_path.push("fleet.nix");
147 tempfile.persist(fleet_data_path)?;
119 Ok(())148 Ok(())
120 }149 }
121}150}
143}172}
144173
145impl FleetOpts {174impl FleetOpts {
146 pub fn build(mut self) -> Result<Config> {175 pub async fn build(mut self, nix_args: Vec<OsString>) -> Result<Config> {
147 let local_system = self.local_system.clone();176 let local_system = self.local_system.clone();
148 if self.localhost.is_none() {177 if self.localhost.is_none() {
149 self.localhost178 self.localhost
161 directory,190 directory,
162 data,191 data,
163 local_system,192 local_system,
193 nix_args,
164 })))194 })))
165 }195 }
166}196}
modifiedcmds/fleet/src/keys.rsdiffbeforeafterboth
35 Ok(key)35 Ok(key)
36 }36 }
37 }37 }
38 /// Insecure, requires root
39 pub async fn identity(&self, host: &str) -> anyhow::Result<age::ssh::Identity> {
40 warn!("Loading private key for {host}");
41 let key = self
42 .command_on(host, "cat", true)
43 .arg("/etc/ssh/ssh_host_ed25519_key")
44 .run_string()
45 .await?;
46 Ok(age::ssh::Identity::from_buffer(key.as_bytes(), None)?)
47 }
38 pub async fn recipient(&self, host: &str) -> anyhow::Result<age::ssh::Recipient> {48 pub async fn recipient(&self, host: &str) -> anyhow::Result<age::ssh::Recipient> {
39 let key = self.key(host).await?;49 let key = self.key(host).await?;
40 age::ssh::Recipient::from_str(&key).map_err(|e| anyhow!("parse recipient error: {:?}", e))50 age::ssh::Recipient::from_str(&key).map_err(|e| anyhow!("parse recipient error: {:?}", e))
modifiedcmds/fleet/src/main.rsdiffbeforeafterboth
59 .map_err(|e| anyhow!("Failed to initialize logger: {}", e))?;59 .map_err(|e| anyhow!("Failed to initialize logger: {}", e))?;
6060
61 info!("Starting");61 info!("Starting");
62 let mut os_args = std::env::args_os();
62 let opts = RootOpts::parse();63 let opts = RootOpts::parse_from((&mut os_args).take_while(|v| v != "--"));
63 let config = opts.fleet_opts.build()?;64 let config = opts.fleet_opts.build(os_args.collect()).await?;
6465
65 match run_command(&config, opts.command).await {66 match run_command(&config, opts.command).await {
66 Ok(()) => {67 Ok(()) => {
modifiedcmds/install-secrets/Cargo.tomldiffbeforeafterboth
4edition = "2021"4edition = "2021"
55
6[dependencies]6[dependencies]
7age = { version = "0.8.1", features = ["ssh"] }7age = { version = "0.9.0", features = ["ssh"] }
8anyhow = "1.0.44"8anyhow = "1.0.44"
9env_logger = "0.9.0"9env_logger = "0.10.0"
10log = "0.4.14"10log = "0.4.14"
11nix = "0.25.0"11nix = "0.26.1"
12serde = "1.0.130"12serde = "1.0.130"
13serde_json = "1.0.68"13serde_json = "1.0.89"
14clap = { version = "3.1.0", features = [14clap = { version = "4.0.29", features = [
15 "derive",15 "derive",
16 "env",16 "env",
17 "wrap_help",17 "wrap_help",
modifiedcmds/install-secrets/src/main.rsdiffbeforeafterboth
1use age::Decryptor;1use age::Decryptor;
2use anyhow::{anyhow, bail, Context, Result};2use anyhow::{anyhow, bail, Context, Result};
3use clap::Parser;3use clap::Parser;
4use log::error;4use log::{error, info, warn};
5use nix::sys::stat::Mode;5use nix::sys::stat::Mode;
6use nix::unistd::{chown, Group, User};6use nix::unistd::{chown, Group, User};
7use serde::{Deserialize, Deserializer};7use serde::{Deserialize, Deserializer};
43 use serde::de::Error;43 use serde::de::Error;
44 if let Some(v) = <Option<String>>::deserialize(deserializer)? {44 if let Some(v) = <Option<String>>::deserialize(deserializer)? {
45 Ok(Some(45 Ok(Some(
46 z85::decode(&v).map_err(|err| Error::custom(err.to_string()))?,46 z85::decode(v).map_err(|err| Error::custom(err.to_string()))?,
47 ))47 ))
48 } else {48 } else {
49 Ok(None)49 Ok(None)
71 .context("failed to persist")?;71 .context("failed to persist")?;
72 }72 }
73 if value.secret.is_none() {73 if value.secret.is_none() {
74 info!("no secret data found");
74 return Ok(());75 return Ok(());
75 }76 }
76 let secret = value.secret.as_ref().unwrap();77 let secret = value.secret.as_ref().unwrap();
109 .context("failed to decrypt")?;110 .context("failed to decrypt")?;
110 decrypted111 decrypted
111 };112 };
113 if decrypted.is_empty() {
114 warn!("secret is decoded as empty, something is broken?");
115 }
112116
113 io::copy(&mut Cursor::new(&decrypted), &mut stable_temp)117 io::copy(&mut Cursor::new(&decrypted), &mut stable_temp)
114 .context("failed to write decrypted file")?;118 .context("failed to write decrypted file")?;
155159
156 let mut failed = false;160 let mut failed = false;
157 for (name, value) in data {161 for (name, value) in data {
162 info!("initializing secret {name}");
158 if let Err(e) = init_secret(&identity, value) {163 if let Err(e) = init_secret(&identity, value) {
159 error!(164 error!(
160 "{:?}",165 "{:?}",
modifiedcrates/nixlike/Cargo.tomldiffbeforeafterboth
4edition = "2021"4edition = "2021"
55
6[dependencies]6[dependencies]
7dprint-core = "0.51.0"7alejandra = "1.5.0"
8rnix = "=0.10.2"
8linked-hash-map = "0.5.4"9linked-hash-map = "0.5.4"
9peg = "0.8.0"10peg = "0.8.0"
10serde = "1.0.130"11serde = "1.0.130"
11thiserror = "1.0.29"12thiserror = "1.0.29"
13serde_json = "1.0.91"
14ron = "0.8.0"
15serde-transcode = "1.1.1"
1216
modifiedcrates/nixlike/src/lib.rsdiffbeforeafterboth
121121
122#[test]122#[test]
123fn test() {123fn test() {
124 assert_eq!(serialize("Hello\nworld").unwrap(), "\"Hello\\nworld\"");124 assert_eq!(serialize("Hello\nworld").unwrap(), "\"Hello\\nworld\"\n");
125}125}
126pub fn format_nix(value: &String) -> String {
127 let (_, out) = alejandra::format::in_memory("".to_owned(), value.to_owned());
128 out
129}
126130
modifiedcrates/nixlike/src/to_string.rsdiffbeforeafterboth
1use crate::Value;1use crate::Value;
2use dprint_core::formatting::{
3 condition_resolvers, conditions, format, ConditionResolverContext, Info, PrintItems,
4 PrintOptions, Signal,
5};
62
7fn write_nix_obj_key_buf(k: &str, v: &Value, out: &mut PrintItems) {3fn write_nix_obj_key_buf(k: &str, v: &Value, out: &mut String) {
8 if k.contains('.') {4 if k.contains('.') {
9 out.push_str("\"");5 out.push_str("\"");
10 out.push_str(k);6 out.push_str(k);
27 }23 }
28}24}
25
26fn write_nix_str(str: &str, out: &mut String) {
27 out.push_str(&format!(
28 "\"{}\"",
29 str.replace('\\', "\\\\")
30 .replace('"', "\\\"")
31 .replace('\n', "\\n")
32 .replace('\t', "\\t")
33 .replace('\r', "\\r")
34 .replace('$', "\\$")
35 ))
36}
2937
30fn write_nix_buf(value: &Value, out: &mut PrintItems) {38fn write_nix_buf(value: &Value, out: &mut String) {
31 match value {39 match value {
32 Value::Null => out.push_str("null"),40 Value::Null => out.push_str("null"),
33 Value::Boolean(v) => out.push_str(if *v { "true" } else { "false" }),41 Value::Boolean(v) => out.push_str(if *v { "true" } else { "false" }),
34 Value::Number(n) => out.push_str(&format!("{}", n)),42 Value::Number(n) => out.push_str(&format!("{}", n)),
35 Value::String(s) => out.push_str(&format!(43 Value::String(s) => write_nix_str(s, out),
36 "\"{}\"",
37 s.replace('\\', "\\\\")
38 .replace('"', "\\\"")
39 .replace('\n', "\\n")
40 .replace('\t', "\\t")
41 .replace('\r', "\\r")
42 .replace('$', "\\$")
43 )),
44 Value::Array(a) => {44 Value::Array(a) => {
45 if a.is_empty() {45 if a.is_empty() {
46 out.push_str("[ ]");46 out.push_str("[ ]");
47 } else {47 } else {
48 let start_info = Info::new("start");
49 let end_info = Info::new("end");
50 let is_multiple_lines = move |ctx: &mut ConditionResolverContext| {
51 condition_resolvers::is_multiple_lines(ctx, &start_info, &end_info)
52 };
53 out.push_str("[");48 out.push('[');
54 out.push_info(start_info);
55 out.push_signal(Signal::StartIndent);
56 out.push_condition(conditions::if_true_or(
57 "array start",
58 is_multiple_lines,
59 Signal::NewLine.into(),
60 Signal::SpaceOrNewLine.into(),
61 ));
62 for item in a {49 for item in a {
63 write_nix_buf(item, out);50 write_nix_buf(item, out);
64 out.push_condition(conditions::if_true_or(51 out.push('\n');
65 "element separator",
66 is_multiple_lines,
67 Signal::NewLine.into(),
68 Signal::SpaceOrNewLine.into(),
69 ));
70 }52 }
71 out.push_signal(Signal::FinishIndent);
72 out.push_info(end_info);
73 out.push_str("]");53 out.push(']');
74 }54 }
75 }55 }
76 Value::Object(obj) => {56 Value::Object(obj) => {
77 if obj.is_empty() {57 if obj.is_empty() {
78 out.push_str("{ }")58 out.push_str("{ }")
79 } else {59 } else {
80 let start_info = Info::new("start");
81 let end_info = Info::new("end");
82 let is_multiple_lines = move |ctx: &mut ConditionResolverContext| {
83 condition_resolvers::is_multiple_lines(ctx, &start_info, &end_info)
84 };
85 out.push_str("{");60 out.push('{');
86 out.push_info(start_info);
87 out.push_signal(Signal::StartIndent);
88 out.push_condition(conditions::if_true_or(
89 "object start",
90 is_multiple_lines,
91 Signal::NewLine.into(),
92 Signal::SpaceOrNewLine.into(),
93 ));
94 for (k, v) in obj {61 for (k, v) in obj {
95 write_nix_obj_key_buf(k, v, out);62 write_nix_obj_key_buf(k, v, out);
96 out.push_condition(conditions::if_true_or(63 out.push('\n');
97 "element separator",
98 is_multiple_lines,
99 Signal::NewLine.into(),
100 Signal::SpaceOrNewLine.into(),
101 ));
102 }64 }
103 out.push_signal(Signal::FinishIndent);
104 out.push_info(end_info);
105 out.push_str("}");65 out.push('}');
106 }66 }
107 }67 }
108 };68 };
109}69}
11070
111pub fn write_nix(value: &Value) -> String {71pub fn write_nix(value: &Value) -> String {
112 format(
113 || {
114 let mut items = PrintItems::new();72 let mut out = String::new();
115 write_nix_buf(value, &mut items);
116 items
117 },73 write_nix_buf(value, &mut out);
118 PrintOptions {
119 max_width: 120,74 let (_, out) = alejandra::format::in_memory("".to_owned(), out);
120 use_tabs: false,75 out
121 indent_width: 2,
122 new_line_text: "\n",
123 },
124 )
125}76}
12677
modifiedflake.lockdiffbeforeafterboth
2 "nodes": {2 "nodes": {
3 "flake-utils": {3 "flake-utils": {
4 "locked": {4 "locked": {
5 "lastModified": 1653893745,5 "lastModified": 1667395993,
6 "narHash": "sha256-0jntwV3Z8//YwuOjzhV2sgJJPt+HY6KhU7VZUL0fKZQ=",6 "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
7 "owner": "numtide",7 "owner": "numtide",
8 "repo": "flake-utils",8 "repo": "flake-utils",
9 "rev": "1ed9fb1935d260de5fe1c2f7ee0ebaae17ed2fa1",9 "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
10 "type": "github"10 "type": "github"
11 },11 },
12 "original": {12 "original": {
15 "type": "github"15 "type": "github"
16 }16 }
17 },17 },
18 "flake-utils_2": {
19 "locked": {
20 "lastModified": 1659877975,
21 "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=",
22 "owner": "numtide",
23 "repo": "flake-utils",
24 "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0",
25 "type": "github"
26 },
27 "original": {
28 "owner": "numtide",
29 "repo": "flake-utils",
30 "type": "github"
31 }
32 },
18 "nixpkgs": {33 "nixpkgs": {
19 "locked": {34 "locked": {
20 "lastModified": 1655726478,35 "lastModified": 1670700221,
21 "narHash": "sha256-n0ArNOgTpxabE1wp7iGGYQMf8CBUN1/SjItuV+vyjvw=",36 "narHash": "sha256-+Fy/Wu8qeAppA14R4gLSlxmD0jGNVWYrgAJUaL23qkI=",
22 "owner": "nixos",37 "owner": "nixos",
23 "repo": "nixpkgs",38 "repo": "nixpkgs",
24 "rev": "439dae554611b75c181e09ad55b8485ae50da0c6",39 "rev": "ccf0f09e2e6744dcd721860a44c633e8708fde2b",
25 "type": "github"40 "type": "github"
26 },41 },
27 "original": {42 "original": {
28 "owner": "nixos",43 "owner": "nixos",
29 "ref": "staging-next",44 "ref": "master",
30 "repo": "nixpkgs",45 "repo": "nixpkgs",
31 "type": "github"46 "type": "github"
32 }47 }
39 }54 }
40 },55 },
41 "rust-overlay": {56 "rust-overlay": {
57 "inputs": {
42 "flake": false,58 "flake-utils": "flake-utils_2",
59 "nixpkgs": [
60 "nixpkgs"
61 ]
62 },
43 "locked": {63 "locked": {
44 "lastModified": 1655692957,64 "lastModified": 1670639101,
45 "narHash": "sha256-PubmAIcfn/PQRA1G4FdEA9r+oo5JpgjPlx5EcTAgelM=",65 "narHash": "sha256-UvPSgbtaOk9WcgVqywnvQXOEEHx6OXdG+QXIwnbyvCw=",
46 "owner": "oxalica",66 "owner": "oxalica",
47 "repo": "rust-overlay",67 "repo": "rust-overlay",
48 "rev": "72b262045a2afa8f6dca94572f6ed5409ef346ab",68 "rev": "d00c488cb455c21fea731167bf8c1b8da605aac3",
49 "type": "github"69 "type": "github"
50 },70 },
51 "original": {71 "original": {
modifiedflake.nixdiffbeforeafterboth
2 description = "NixOS configuration management";2 description = "NixOS configuration management";
33
4 inputs = {4 inputs = {
5 nixpkgs.url = "github:nixos/nixpkgs/staging-next";5 nixpkgs.url = "github:nixos/nixpkgs/master";
6 rust-overlay = { url = "github:oxalica/rust-overlay"; flake = false; };6 rust-overlay = { url = "github:oxalica/rust-overlay"; inputs.nixpkgs.follows = "nixpkgs"; };
7 flake-utils.url = "github:numtide/flake-utils";7 flake-utils = { url = "github:numtide/flake-utils"; };
8 };8 };
9 outputs = { self, rust-overlay, flake-utils, nixpkgs }: with nixpkgs.lib; rec {9 outputs = { self, rust-overlay, flake-utils, nixpkgs }: with nixpkgs.lib; rec {
10 lib = import ./lib { inherit flake-utils; };10 lib = import ./lib { inherit flake-utils; };
15 inherit system; overlays = [ (import rust-overlay) ];15 inherit system; overlays = [ (import rust-overlay) ];
16 };16 };
17 llvmPkgs = pkgs.buildPackages.llvmPackages_11;17 llvmPkgs = pkgs.buildPackages.llvmPackages_11;
18 rust = (pkgs.rustChannelOf { date = "2022-02-02"; channel = "nightly"; }).default.override { extensions = [ "rust-src" ]; };18 rust = (pkgs.rustChannelOf { date = "2022-12-02"; channel = "nightly"; }).default.override { extensions = [ "rust-src" ]; };
19 rustPlatform = pkgs.makeRustPlatform { cargo = rust; rustc = rust; };19 rustPlatform = pkgs.makeRustPlatform { cargo = rust; rustc = rust; };
20 in20 in
21 {21 {
modifiedlib/default.nixdiffbeforeafterboth
51 in51 in
52 rec {52 rec {
53 inherit configuredHosts configuredSecrets configuredSystems;53 inherit configuredHosts configuredSecrets configuredSystems;
54 configUnchecked = root.config;
54 buildSystems = {55 buildSystems = {
55 toplevel = builtins.mapAttrs (_name: value: value.config.system.build.toplevel) (configuredSystemsWithExtraModules [ ]);56 toplevel = builtins.mapAttrs (_name: value: value.config.system.build.toplevel) (configuredSystemsWithExtraModules [ ]);
56 sdImage = builtins.mapAttrs (_name: value: value.config.system.build.sdImage) (configuredSystemsWithExtraModules [57 sdImage = builtins.mapAttrs (_name: value: value.config.system.build.sdImage) (configuredSystemsWithExtraModules [
modifiedmodules/fleet/secrets.nixdiffbeforeafterboth
9 if not matches expectedOwners - then this secret is considered outdated, and9 if not matches expectedOwners - then this secret is considered outdated, and
10 should be regenerated/reencrypted10 should be regenerated/reencrypted
11 '';11 '';
12 default = [ ];
12 };13 };
13 expectedOwners = mkOption {14 expectedOwners = mkOption {
14 type = listOf str;15 type = listOf str;
80 assertions = mapAttrsToList81 assertions = mapAttrsToList
81 (name: secret: {82 (name: secret: {
82 assertion = builtins.sort (a: b: a < b) secret.owners == builtins.sort (a: b: a < b) secret.expectedOwners;83 assertion = builtins.sort (a: b: a < b) secret.owners == builtins.sort (a: b: a < b) secret.expectedOwners;
83 message = "Shared secret ${name} is expected to be encrypted for ${builtins.toJSON secret.expectedOwners}, but it is encrypted for ${builtins.toJSON secret.owners}";84 message = "Shared secret ${name} is expected to be encrypted for ${builtins.toJSON secret.expectedOwners}, but it is encrypted for ${builtins.toJSON secret.owners}. Run fleet secrets regenerate to fix";
84 })85 })
85 config.sharedSecrets;86 config.sharedSecrets;
86 hosts = hostsToAttrs (host: {87 hosts = hostsToAttrs (host: {