rewrite most of the handler code :3

This commit is contained in:
2025-11-13 20:02:22 +04:00
parent 52d6137c05
commit 0f725073d8
13 changed files with 1585 additions and 281 deletions

1
Cargo.lock generated
View File

@@ -175,6 +175,7 @@ dependencies = [
"color-eyre",
"console",
"indicatif",
"owo-colors",
"serde",
"serde_json",
"serde_repr",

View File

@@ -16,6 +16,7 @@ opt-level = 3
color-eyre = "0.6.5"
console = "0.16.1"
indicatif = "0.18.2"
owo-colors = "4.2.3"
serde = { version = "1.0.228", features = ["derive"] }
serde_json = { version = "1.0.145", features = ["raw_value"] }
serde_repr = "0.1.20"

963
build2.log Normal file
View File

@@ -0,0 +1,963 @@
@nix {"action":"msg","level":1,"msg":"\u001b[35;1mwarning:\u001b[0m unknown setting 'eval-cores'"}
@nix {"action":"msg","level":1,"msg":"\u001b[35;1mwarning:\u001b[0m unknown setting 'lazy-trees'"}
@nix {"action":"msg","level":4,"msg":"evaluating file '<nix/derivation-internal.nix>'"}
@nix {"action":"start","id":3390850910388224,"level":4,"parent":0,"text":"evaluating derivation 'flake:nikpkgs#flightcore'","type":0}
@nix {"action":"start","id":3390850910388225,"level":4,"parent":0,"text":"copying \"/nix/store/mdxl9jhwp7fnnx850bj0s0ji61l85i5h-source\" to the store","type":0}
@nix {"action":"stop","id":3390850910388225}
@nix {"action":"msg","level":4,"msg":"evaluating file '/nix/store/mdxl9jhwp7fnnx850bj0s0ji61l85i5h-source/flake.nix'"}
@nix {"action":"msg","level":4,"msg":"evaluating file '/nix/store/mdxl9jhwp7fnnx850bj0s0ji61l85i5h-source/flake.nix'"}
@nix {"action":"stop","id":3390850910388224}
@nix {"action":"start","id":3390936809734144,"level":6,"parent":0,"text":"querying info about missing paths","type":0}
@nix {"action":"stop","id":3390936809734144}
@nix {"action":"msg","level":3,"msg":"this derivation will be built:"}
@nix {"action":"msg","level":3,"msg":" /nix/store/mj7g24m7229lzzd892m0h9g0hxki69ss-flightcore-3.2.0.drv"}
@nix {"action":"start","id":3390936809734145,"level":0,"parent":0,"text":"","type":102}
@nix {"action":"start","id":3390936809734146,"level":0,"parent":0,"text":"","type":104}
@nix {"action":"start","id":3390936809734147,"level":0,"parent":0,"text":"","type":103}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"start","id":3390936809734148,"level":6,"parent":0,"text":"querying info about missing paths","type":0}
@nix {"action":"stop","id":3390936809734148}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,2,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,3,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,4,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,5,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,6,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,7,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,8,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,9,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,10,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,11,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,12,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,13,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,14,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,15,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,16,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,17,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,18,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,19,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,20,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,21,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,22,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,23,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,22,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,21,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,20,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,19,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,18,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,17,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,16,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,15,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,14,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,13,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,12,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,11,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,10,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,9,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,8,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,7,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,6,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,5,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,4,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,3,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,2,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[0,1,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"start","fields":["/nix/store/mj7g24m7229lzzd892m0h9g0hxki69ss-flightcore-3.2.0.drv","",1,1],"id":3390936809734149,"level":3,"parent":0,"text":"building '/nix/store/mj7g24m7229lzzd892m0h9g0hxki69ss-flightcore-3.2.0.drv'","type":105}
@nix {"action":"result","fields":[0,1,1,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":["Running phase: unpackPhase"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["unpackPhase"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["unpacking source archive /nix/store/pyxcbh7yncqvj29x8zv9kh4pym37zghk-source"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["source root is source"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Executing cargoSetupPostUnpackHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Finished cargoSetupPostUnpackHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Running phase: patchPhase"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["patchPhase"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["applying patch /nix/store/k35j2wzn2ni1m7b2644mdr98xjydlj8i-cargo-lock.patch"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["patching file src-tauri/Cargo.lock"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Executing npmConfigHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["/build/source/src-vue /build/source"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Configuring npm"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Validating consistency between /build/source/src-vue/package-lock.json and /nix/store/382w9myyvc65gh8azpzcx0273ni3ilp6-flightcore-3.2.0-npm-deps/package-lock.json"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Setting npm_config_cache to /nix/store/382w9myyvc65gh8azpzcx0273ni3ilp6-flightcore-3.2.0-npm-deps"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Installing dependencies"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["added 88 packages, and audited 89 packages in 1s"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["19 packages are looking for funding"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[" run `npm fund` for details"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["found \u001b[32m\u001b[1m0\u001b[22m\u001b[39m vulnerabilities"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["patching script interpreter paths in node_modules"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/@babel/parser/bin/babel-parser.js: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/@vueuse/core/node_modules/vue-demi/bin/vue-demi-fix.js: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/@vueuse/core/node_modules/vue-demi/bin/vue-demi-switch.js: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/@vueuse/shared/node_modules/vue-demi/bin/vue-demi-fix.js: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/@vueuse/shared/node_modules/vue-demi/bin/vue-demi-switch.js: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/esbuild/bin/esbuild: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/he/bin/he: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/marked/bin/marked.js: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/nanoid/bin/nanoid.cjs: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/resolve/bin/resolve: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/semver/bin/semver.js: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/rollup/dist/bin/rollup: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/vite/bin/vite.js: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/typescript/bin/tsc: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/typescript/bin/tsserver: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["node_modules/vue-tsc/bin/vue-tsc.js: interpreter directive changed from \"#!/usr/bin/env node\" to \"/nix/store/nvf9kaarb9kqqdbygl9cbzhli1y8yjik-nodejs-22.20.0/bin/node\""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["rebuilt dependencies successfully"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["patching script interpreter paths in node_modules"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["~/source"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Finished npmConfigHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Executing cargoSetupPostPatchHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Validating consistency between /build/source/src-tauri/Cargo.lock and /build/cargo-deps-vendor/Cargo.lock"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Finished cargoSetupPostPatchHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Running phase: updateAutotoolsGnuConfigScriptsPhase"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["updateAutotoolsGnuConfigScriptsPhase"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Running phase: configurePhase"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["configurePhase"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Running phase: buildPhase"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["buildPhase"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Executing tauriBuildHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["~/source/src-tauri ~/source"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["cargo-tauri.hook cargoFlags: -j 32 --target x86_64-unknown-linux-gnu --offline --profile release"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["cargo-tauri.hook tauriFlags: --bundles deb --target x86_64-unknown-linux-gnu"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Info\u001b[0m Looking up installed tauri packages to check mismatched versions..."],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Running\u001b[0m beforeBuildCommand `cd src-vue && npm run build`"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["> src-vue@0.0.0 build"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["> vue-tsc --noEmit && vite build"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[36mvite v3.2.11 \u001b[32mbuilding for production...\u001b[36m\u001b[39m"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[32m✓\u001b[39m 1493 modules transformed."],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[2K\u001b[1G\u001b[2K\u001b[1G\u001b[90m\u001b[37m\u001b[2mdist/\u001b[22m\u001b[90m\u001b[39m\u001b[32massets/1009235.f93d5a5c.jpg \u001b[39m \u001b[33m723.17 KiB\u001b[39m"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[90m\u001b[37m\u001b[2mdist/\u001b[22m\u001b[90m\u001b[39m\u001b[32massets/thunderstore-icon.7f4f0b2c.png \u001b[39m \u001b[2m6.92 KiB\u001b[22m"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[90m\u001b[37m\u001b[2mdist/\u001b[22m\u001b[90m\u001b[39m\u001b[32mindex.html \u001b[39m \u001b[2m0.44 KiB\u001b[22m"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[90m\u001b[37m\u001b[2mdist/\u001b[22m\u001b[90m\u001b[39m\u001b[35massets/index.d469d449.css \u001b[39m \u001b[2m332.96 KiB / gzip: 46.70 KiB\u001b[22m"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[90m\u001b[37m\u001b[2mdist/\u001b[22m\u001b[90m\u001b[39m\u001b[36massets/index.7cc911b9.js \u001b[39m \u001b[33m1306.01 KiB / gzip: 408.69 KiB\u001b[39m"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[33m"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["(!) Some chunks are larger than 500 KiB after minification. Consider:"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["- Using dynamic import() to code-split the application"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/guide/en/#outputmanualchunks"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.\u001b[39m"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m quote v1.0.41"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m proc-macro2 v1.0.103"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m unicode-ident v1.0.20"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde_core v1.0.228"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde v1.0.228"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m libc v0.2.177"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m hashbrown v0.16.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m equivalent v1.0.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m smallvec v1.15.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pkg-config v0.3.32"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m heck v0.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cfg-if v1.0.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m winnow v0.5.40"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zerocopy v0.8.27"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m target-lexicon v0.12.16"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m memchr v2.7.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m version-compare v0.2.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m shlex v1.3.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m find-msvc-tools v0.1.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m thiserror v1.0.69"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pin-project-lite v0.2.16"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m icu_properties_data v2.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m icu_normalizer_data v2.0.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m once_cell v1.21.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m autocfg v1.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m parking_lot_core v0.9.12"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m version_check v0.9.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m syn v1.0.109"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m futures-core v0.3.31"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m itoa v1.0.15"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m futures-io v0.3.31"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m slab v0.4.11"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m stable_deref_trait v1.2.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m siphasher v1.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m thiserror v2.0.17"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m futures-sink v0.3.31"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m winnow v0.7.13"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m siphasher v0.3.11"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m log v0.4.28"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m getrandom v0.1.16"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m fnv v1.0.7"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pin-utils v0.1.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m futures-task v0.3.31"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m typeid v1.0.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m erased-serde v0.4.8"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m futures-channel v0.3.31"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m strsim v0.11.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m litemap v0.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m writeable v0.6.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m getrandom v0.3.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf_shared v0.11.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m ident_case v1.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m proc-macro-hack v0.5.20+deprecated"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf_shared v0.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m percent-encoding v2.3.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m anyhow v1.0.100"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf_shared v0.10.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde_json v1.0.145"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m byteorder v1.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m new_debug_unreachable v1.0.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m scopeguard v1.2.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m precomputed-hash v0.1.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m mac v0.1.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m ryu v1.0.20"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m bytes v1.10.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m utf8_iter v1.0.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m dtoa v1.0.10"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m futf v0.1.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m utf-8 v0.7.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m bitflags v1.3.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m lock_api v0.4.14"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m toml_writer v1.0.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m indexmap v2.12.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m dtoa-short v0.3.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tendril v0.4.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m indexmap v1.9.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m form_urlencoded v1.2.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m alloc-no-stdlib v2.0.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m convert_case v0.4.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m aho-corasick v1.1.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m unic-char-range v0.9.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m typenum v1.19.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m regex-syntax v0.8.8"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m nodrop v0.1.14"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m camino v1.2.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m unic-common v0.9.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m matches v0.1.10"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m fxhash v0.2.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cfg-expr v0.15.8"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m alloc-stdlib v0.2.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m unic-char-property v0.9.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m servo_arc v0.2.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m unic-ucd-version v0.9.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf v0.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m crossbeam-utils v0.8.21"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m hashbrown v0.12.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m schemars v0.8.22"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m brotli-decompressor v5.0.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m unic-ucd-ident v0.9.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m generic-array v0.14.9"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m proc-macro-error-attr v1.0.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m dyn-clone v1.0.20"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m same-file v1.0.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m walkdir v2.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m proc-macro-error v1.0.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m dunce v1.0.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m num-conv v0.1.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m time-core v0.1.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m glob v0.3.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m powerfmt v0.2.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m syn v2.0.108"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m time-macros v0.2.24"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m http v1.3.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m deranged v0.5.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m heck v0.4.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m crc32fast v1.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gio v0.18.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m option-ext v0.2.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zeroize v1.8.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m subtle v2.6.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m memoffset v0.9.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m jobserver v0.1.34"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m getrandom v0.2.16"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m dirs-sys v0.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rustls-pki-types v1.13.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tracing-core v0.1.34"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rand_core v0.6.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rand_core v0.5.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m untrusted v0.9.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m dirs v6.0.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cc v1.2.43"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m parking_lot v0.12.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m brotli v8.0.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rand_pcg v0.2.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gtk v0.18.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m atomic-waker v1.1.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m x11 v2.21.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m simd-adler32 v0.3.7"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tower-service v0.3.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m base64 v0.22.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m toml_parser v1.0.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m adler2 v2.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rustix v1.1.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m parking v2.2.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m signal-hook-registry v1.4.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m socket2 v0.6.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m ppv-lite86 v0.2.21"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m mio v1.1.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m http-body v1.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m miniz_oxide v0.8.9"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rand_chacha v0.3.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rand_chacha v0.2.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m semver v1.0.27"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m toml_datetime v0.7.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde_spanned v1.0.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m regex-automata v0.4.13"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m time v0.3.44"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rand v0.8.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rustc_version v0.4.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rand v0.7.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m toml v0.9.8"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m concurrent-queue v2.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m bitflags v2.10.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m x11-dl v2.21.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cookie v0.18.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m hex v0.4.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m linux-raw-sys v0.11.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m field-offset v0.3.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m httparse v1.10.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m vcpkg v0.2.15"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m raw-window-handle v0.6.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde-untagged v0.1.9"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m block-buffer v0.10.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m crypto-common v0.1.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m flate2 v1.1.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m fdeflate v0.3.7"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m try-lock v0.2.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf_generator v0.11.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf_generator v0.10.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf_generator v0.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m ring v0.17.14"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m fastrand v2.3.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf_codegen v0.11.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m string_cache_codegen v0.5.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf_codegen v0.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m png v0.17.16"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m want v0.3.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m selectors v0.24.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m digest v0.10.7"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m embed-resource v3.0.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m crossbeam-channel v0.5.15"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m wry v0.53.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-winres v0.3.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m openssl-sys v0.9.110"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m markup5ever v0.14.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-runtime v2.9.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cpufeatures v0.2.17"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m lazy_static v1.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sha2 v0.10.9"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m toml_edit v0.23.7"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-runtime-wry v2.9.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m ico v0.4.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m unicode-segmentation v1.12.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rustls v0.23.34"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m mime v0.3.17"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m openssl-probe v0.1.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m ipnet v2.11.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m event-listener v5.4.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m regex v1.12.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m synstructure v0.13.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m darling_core v0.21.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde_derive_internals v0.29.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m proc-macro-crate v3.4.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m num-traits v0.2.19"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m openssl v0.10.74"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m foreign-types-shared v0.1.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tower-layer v0.3.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m foreign-types v0.3.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m event-listener-strategy v0.5.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m futures-lite v2.6.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zstd-sys v2.0.16+zstd.1.5.7"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m webpki-roots v1.0.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m native-tls v0.2.14"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m http-body-util v0.1.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m async-io v2.6.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m ucd-trie v0.1.7"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m object v0.37.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m iri-string v0.7.8"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m bzip2-sys v0.1.13+1.0.8"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sync_wrapper v1.0.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pest v2.8.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cfg_aliases v0.2.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zstd-safe v5.0.2+zstd.1.5.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m async-task v4.7.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gimli v0.32.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rustls v0.22.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m endi v1.1.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m num-integer v0.1.46"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m nix v0.30.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m async-channel v2.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m findshlibs v0.10.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m inout v0.1.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m crossbeam-epoch v0.9.18"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m static_assertions v1.1.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rayon-core v1.13.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rustc-demangle v0.1.26"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m base64ct v1.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cipher v0.4.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m num-bigint v0.4.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m crossbeam-deque v0.8.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m hmac v0.12.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m async-lock v3.4.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m piper v0.2.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m password-hash v0.4.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sentry-contexts v0.32.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m filetime v0.2.26"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf_macros v0.10.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cssparser v0.29.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rustls-pemfile v2.2.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pest_meta v2.8.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m is-docker v0.2.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m encoding_rs v0.8.35"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zip v2.4.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m bumpalo v3.19.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rfd v0.15.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m either v1.15.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde_derive v1.0.228"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zerofrom-derive v0.1.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m yoke-derive v0.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zerovec-derive v0.11.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m displaydoc v0.2.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m thiserror-impl v1.0.69"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m thiserror-impl v2.0.17"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m futures-macro v0.3.31"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf_macros v0.11.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf v0.10.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cssparser-macros v0.6.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m ctor v0.2.9"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m match_token v0.1.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m derive_more v0.99.20"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m schemars_derive v0.8.22"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tokio-macros v2.6.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m darling_macro v0.21.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tracing-attributes v0.1.30"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m dlopen2_derive v0.4.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m phf v0.11.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m futures-util v0.3.31"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m enumflags2_derive v0.7.12"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde_repr v0.1.20"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serialize-to-javascript-impl v0.1.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m openssl-macros v0.1.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m polling v3.11.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m addr2line v0.25.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pin-project-internal v1.1.10"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m darling v0.21.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde_with_macros v3.15.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tokio v1.48.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zerofrom v0.1.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m yoke v0.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m dlopen2 v0.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m xattr v1.6.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zerovec v0.11.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zerotrie v0.2.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pest_generator v2.8.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m async-trait v0.1.89"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m simple_asn1 v0.6.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tar v0.4.44"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zopfli v0.8.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m snafu-derive v0.8.9"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m async-signal v0.2.13"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m backtrace v0.3.76"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pbkdf2 v0.11.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m async-process v2.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m is-wsl v0.4.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m keyvalues-parser v0.2.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pest_derive v2.8.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tracing v0.1.41"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pin-project v1.1.10"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tinystr v0.8.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m potential_utf v0.1.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde_with v3.15.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rustls-native-certs v0.7.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m icu_locale_core v2.0.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m icu_collections v2.0.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m blocking v1.6.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m aes v0.8.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m bzip2 v0.4.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m async-executor v1.13.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m icu_provider v2.0.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sha1 v0.10.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m webpki-roots v0.26.11"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m async-broadcast v0.7.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pem v3.0.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m icu_normalizer v2.0.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m toml_datetime v0.6.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde_spanned v0.6.9"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m icu_properties v2.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m string_cache v0.8.9"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m uuid v1.18.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cargo-platform v0.1.9"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m toml_edit v0.20.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m jsonptr v0.6.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cargo_metadata v0.19.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m futures-executor v0.3.31"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cfb v0.7.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cargo_toml v0.22.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m json-patch v3.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m toml_edit v0.19.15"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m dpi v0.1.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m keyboard-types v0.7.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zvariant_utils v3.2.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serialize-to-javascript v0.1.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m debugid v0.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m enumflags2 v0.7.12"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde_urlencoded v0.7.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m idna_adapter v1.2.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m infer v0.19.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m idna v1.1.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m html5ever v0.29.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zvariant_derive v5.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m uname v0.1.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m hostname v0.4.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m is-terminal v0.4.17"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m ordered-stream v0.2.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m crc-catalog v2.4.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pathdiff v0.2.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m iana-time-zone v0.1.64"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m termcolor v1.4.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m constant_time_eq v0.1.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m humantime v2.3.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m unicode-xid v0.2.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m url v2.5.7"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m const_format_proc_macros v0.2.34"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m env_logger v0.10.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m chrono v0.4.42"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m open v5.3.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m crc v3.3.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m snafu v0.8.9"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m toml v0.8.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m kuchikiki v0.8.8-speedreader"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m proc-macro-crate v2.0.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m proc-macro-crate v1.3.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m ts-rs-macros v10.1.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m system-deps v6.2.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m urlpattern v0.3.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m futures v0.3.31"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m keyvalues-serde v0.2.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m json5 v0.4.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rayon v1.11.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zvariant v5.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tempfile v3.23.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m serde_path_to_error v0.1.20"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tokio-util v0.7.16"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rustls-webpki v0.103.7"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sentry-types v0.32.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m rustls-webpki v0.102.8"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-utils v2.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m glib-sys v0.18.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gobject-sys v0.18.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gio-sys v0.18.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gdk-sys v0.18.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m atk-sys v0.18.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gdk-pixbuf-sys v0.18.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pango-sys v0.18.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cairo-sys-rs v0.18.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m glib-macros v0.18.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gtk-sys v0.18.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m javascriptcore-rs-sys v1.1.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m soup3-sys v0.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gtk3-macros v0.18.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m webkit2gtk-sys v2.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gdkx11-sys v0.18.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m h2 v0.4.12"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tower v0.5.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tokio-native-tls v0.3.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zbus_names v4.2.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tower v0.4.13"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sentry-types v0.34.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m jsonwebtoken v9.3.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m dirs-sys v0.4.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tower-http v0.6.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m secrecy v0.8.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m httpdate v1.0.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m arc-swap v1.7.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m home v0.5.12"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m minisign-verify v0.2.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m steamlocate v2.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zbus_macros v5.12.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tower-http v0.5.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m dirs v5.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sysinfo v0.30.13"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m ts-rs v10.1.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m const_format v0.2.35"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pretty_env_logger v0.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m async-recursion v1.1.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gdkwayland-sys v0.18.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sentry-core v0.32.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m remove-markdown-links v1.0.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sentry-backtrace v0.32.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sentry-debug-images v0.32.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sentry-panic v0.32.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tokio-rustls v0.25.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m glib v0.18.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sentry-core v0.34.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sentry-log v0.34.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zbus v5.12.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tokio-rustls v0.26.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m hyper v1.7.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m ureq v2.12.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m libthermite v0.8.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m hyper-util v0.1.17"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin v2.5.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-build v2.5.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-codegen v2.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m hyper-rustls v0.27.7"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m hyper-tls v0.6.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m reqwest v0.12.24"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m hyper-timeout v0.5.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m hyper-rustls v0.26.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m octocrab v0.38.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m sentry v0.32.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m cairo-rs v0.18.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m atk v0.18.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m javascriptcore-rs v1.1.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri v2.9.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-macros v2.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin-fs v2.4.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin-process v2.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin-dialog v2.4.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin-updater v2.9.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin-opener v2.5.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin-store v2.4.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m flightcore v3.2.0 (/build/source/src-tauri)"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zstd v0.11.2+zstd.1.5.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zip v0.6.6"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m zip-extract v0.1.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gdk-pixbuf v0.18.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m pango v0.18.3"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m soup3 v0.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gdk v0.18.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m gdkx11 v0.18.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m webkit2gtk v2.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tao v0.34.5"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m muda v0.17.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Finished\u001b[0m `release` profile [optimized + debuginfo] target(s) in 1m 44s"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Built\u001b[0m application at: /build/source/target/x86_64-unknown-linux-gnu/release/flightcore"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Info\u001b[0m Patching binary \"/build/source/target/x86_64-unknown-linux-gnu/release/flightcore\" for type deb"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Bundling\u001b[0m FlightCore_3.2.0_amd64.deb (/build/source/target/x86_64-unknown-linux-gnu/release/bundle/deb/FlightCore_3.2.0_amd64.deb)"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Finished\u001b[0m 1 bundle at:"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[" /build/source/target/x86_64-unknown-linux-gnu/release/bundle/deb/FlightCore_3.2.0_amd64.deb"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["~/source"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Finished tauriBuildHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["buildPhase completed in 1 minutes 52 seconds"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Running phase: checkPhase"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["checkPhase"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Executing cargoCheckHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["~/source/src-tauri ~/source"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["cargoCheckHook flags: -j 32 --profile release --target x86_64-unknown-linux-gnu --offline --"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri v2.9.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-macros v2.5.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin-fs v2.4.4"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin-process v2.0.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin-updater v2.9.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin-opener v2.5.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin-store v2.4.1"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m tauri-plugin-dialog v2.4.2"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Compiling\u001b[0m flightcore v3.2.0 (/build/source/src-tauri)"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Finished\u001b[0m `release` profile [optimized + debuginfo] target(s) in 38.93s"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Running\u001b[0m unittests src/lib.rs (/build/source/target/x86_64-unknown-linux-gnu/release/deps/tauri_app_lib-545b47005e940be0)"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["running 24 tests"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test util::tests::test_not_release_candidate ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test util::tests::test_double_patch_digit_release_candidate_number_conversion ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test util::tests::test_basic_release_candidate_number_conversion ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test util::tests::test_leading_zero_release_candidate_number_conversion ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test util::tests::test_double_digit_patch_and_rc_number_conversion ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test util::tests::test_double_digit_release_candidate_number_conversion ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test export_bindings_installtype ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test export_bindings_northstarmod ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test export_bindings_northstarthunderstorerelease ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test github::export_bindings_project ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test github::export_bindings_tag ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test github::pull_requests::export_bindings_pullrequesttype ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test github::release_notes::export_bindings_releaseinfo ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test github::pull_requests::export_bindings_repo ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test github::release_notes::export_bindings_flightcoreversion ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test northstar::install::export_bindings_installstate ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test northstar::export_bindings_northstarlaunchoptions ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test thunderstore::export_bindings_thunderstoremodversion ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test export_bindings_northstarthunderstorereleasewrapper ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test github::pull_requests::export_bindings_commithead ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test github::export_bindings_tagwrapper ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test northstar::install::export_bindings_installprogress ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test github::pull_requests::export_bindings_pullsapiresponseelement ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test thunderstore::export_bindings_thunderstoremod ... ok"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test result: ok. 24 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.09s"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Running\u001b[0m unittests src/main.rs (/build/source/target/x86_64-unknown-linux-gnu/release/deps/flightcore-58bd9d7bef3ca673)"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["running 0 tests"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["\u001b[1m\u001b[32m Doc-tests\u001b[0m tauri_app_lib"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["running 0 tests"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":[""],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["~/source"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Finished cargoCheckHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["checkPhase completed in 39 seconds"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Running phase: glibPreInstallPhase"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["glibPreInstallPhase"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Running phase: glibPreInstallPhase"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["glibPreInstallPhase"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Running phase: glibPreInstallPhase"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["glibPreInstallPhase"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Running phase: installPhase"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["installPhase"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Executing tauriInstallHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Finished tauriInstallHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["Running phase: gappsWrapperArgsHook"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["gappsWrapperArgsHook"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Running phase: dropIconThemeCache"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["dropIconThemeCache"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Running phase: dropIconThemeCache"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["dropIconThemeCache"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Running phase: dropIconThemeCache"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["dropIconThemeCache"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Running phase: fixupPhase"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["fixupPhase"],"id":3390936809734149,"type":104}
@nix {"action":"result","fields":["Wrapping program '/nix/store/4dh9vk80vb04rv7a58pqpyvnc0ljzs7j-flightcore-3.2.0/bin/flightcore'"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["shrinking RPATHs of ELF executables and libraries in /nix/store/4dh9vk80vb04rv7a58pqpyvnc0ljzs7j-flightcore-3.2.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["shrinking /nix/store/4dh9vk80vb04rv7a58pqpyvnc0ljzs7j-flightcore-3.2.0/bin/.flightcore-wrapped"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["shrinking /nix/store/4dh9vk80vb04rv7a58pqpyvnc0ljzs7j-flightcore-3.2.0/bin/flightcore"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["checking for references to /build/ in /nix/store/4dh9vk80vb04rv7a58pqpyvnc0ljzs7j-flightcore-3.2.0..."],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["patching script interpreter paths in /nix/store/4dh9vk80vb04rv7a58pqpyvnc0ljzs7j-flightcore-3.2.0"],"id":3390936809734149,"type":101}
@nix {"action":"result","fields":["stripping (with command strip and flags -S -p) in /nix/store/4dh9vk80vb04rv7a58pqpyvnc0ljzs7j-flightcore-3.2.0/bin"],"id":3390936809734149,"type":101}
@nix {"action":"msg","level":0,"msg":"linking '/nix/store/4dh9vk80vb04rv7a58pqpyvnc0ljzs7j-flightcore-3.2.0/share/icons/hicolor/32x32/apps/flightcore.png' to \"/nix/store/.links/0dcjhbkkcn553r787hcvq8wmb3f4k8msq20nb4yqkzcp1flygnwq\""}
@nix {"action":"msg","level":0,"msg":"linking '/nix/store/4dh9vk80vb04rv7a58pqpyvnc0ljzs7j-flightcore-3.2.0/share/icons/hicolor/128x128/apps/flightcore.png' to \"/nix/store/.links/18vkx7hfyrs0hwnx7jky65x1mhwpb5cd6rbpyjp5ag0gb300dlk5\""}
@nix {"action":"msg","level":0,"msg":"linking '/nix/store/4dh9vk80vb04rv7a58pqpyvnc0ljzs7j-flightcore-3.2.0/share/icons/hicolor/256x256@2/apps/flightcore.png' to \"/nix/store/.links/14g413mc6by9fby9zwjrsr21giba4nvm2l1mdxxyza62s20rakv7\""}
@nix {"action":"msg","level":0,"msg":"linking '/nix/store/4dh9vk80vb04rv7a58pqpyvnc0ljzs7j-flightcore-3.2.0/share/applications/FlightCore.desktop' to \"/nix/store/.links/11v6fvn931dvx5b8arw8v3ccc0a22w95nn24wbwznb72a1a1vica\""}
@nix {"action":"result","fields":[1,2,0,0],"id":3390936809734146,"type":105}
@nix {"action":"result","fields":[0,0,0,0],"id":3390936809734147,"type":105}
@nix {"action":"result","fields":[101,0],"id":3390936809734145,"type":106}
@nix {"action":"result","fields":[100,0],"id":3390936809734145,"type":106}
@nix {"action":"stop","id":3390936809734149}
@nix {"action":"stop","id":3390936809734147}
@nix {"action":"stop","id":3390936809734146}
@nix {"action":"stop","id":3390936809734145}

View File

@@ -6,6 +6,7 @@ use indicatif::{HumanBytes, MultiProgress, ProgressBar};
use crate::{
estimator::Estimator,
multibar::{BarSegment, MultiBar},
pad_string,
};
static DOWNLOAD_CHAR: LazyLock<String> = LazyLock::new(|| style("#").blue().bold().to_string());
@@ -136,13 +137,3 @@ fn str_len(s: &str) -> usize {
.filter(|x| x.is_alphanumeric() || x.is_whitespace())
.count()
}
fn pad_string(s: &str, width: usize) -> String {
if s.len() >= width {
s.to_string()
} else {
let mut padded = s.to_string();
padded.push_str(&" ".repeat(width - s.len()));
padded
}
}

238
src/handlers/download.rs Normal file
View File

@@ -0,0 +1,238 @@
use std::{sync::LazyLock, time::Instant};
use indicatif::{HumanBytes, ProgressBar};
use owo_colors::OwoColorize;
use crate::{
action::{Action, BuildStepId, ResultFields, StartFields},
estimator::Estimator,
handlers::{Handler, fetch::FetchHandler},
multibar::{BarSegment, MultiBar},
nix_path, pad_string,
};
static DOWNLOAD_CHAR: LazyLock<String> = LazyLock::new(|| "#".blue().bold().to_string());
static DONE_CHAR: LazyLock<String> = LazyLock::new(|| "#".green().bold().to_string());
const INFO_WIDTH: usize = 13;
pub struct SubstituteHandler;
impl Handler for SubstituteHandler {
fn handle(
&mut self,
state: &mut crate::state::State,
action: &crate::action::Action,
) -> color_eyre::Result<bool> {
match action {
Action::Start {
start_type: StartFields::Substitute { source, target },
id,
..
} => {
state.println(format!("Substituting {} -> {}", source, target))?;
state.plug(CopyHandler(*id));
// Handle global start action
Ok(true)
}
_ => Ok(true),
}
}
}
pub struct CopyHandler(BuildStepId);
impl Handler for CopyHandler {
fn handle(
&mut self,
state: &mut crate::state::State,
action: &crate::action::Action,
) -> color_eyre::Result<bool> {
match action {
Action::Start {
start_type:
StartFields::CopyPath {
path,
origin,
destination,
},
id,
parent,
..
} if parent == &self.0 => {
state.println(format!(
"Copying {} <- {} (from {})",
destination, path, origin
))?;
let bar = state.add_pb(ProgressBar::new(1));
state.plug(DownloadHandler::new(
state.term_width,
*id,
bar,
path.to_string(),
));
// Handle global start action
Ok(false)
}
_ => Ok(true),
}
}
}
pub struct DownloadHandler {
pub id: BuildStepId,
pub copy_id: BuildStepId,
pub download_estimator: Estimator,
pub bar: ProgressBar,
pub path: String,
pub download_expected: u64,
pub download_done: u64,
pub extract_expected: u64,
pub extract_done: u64,
pub started_at: Instant,
}
impl DownloadHandler {
pub fn new(width: u16, copy_id: BuildStepId, bar: ProgressBar, path: String) -> Self {
bar.set_style(indicatif::ProgressStyle::with_template("{msg}").unwrap());
let new = Self {
id: u64::MAX.into(),
copy_id,
download_estimator: Estimator::new(Instant::now()),
bar,
path,
download_expected: 0,
download_done: 0,
extract_expected: 0,
extract_done: 0,
started_at: Instant::now(),
};
new.draw_bar(width);
new
}
pub fn draw_bar(&self, width: u16) {
let name = nix_path::extract_package_name_string(&self.path)
.unwrap_or_else(|| "unknown".to_string());
let name = pad_string(&name, (width / 4) as usize);
let status = format!("Download {} |", name.purple().bold());
let status_len = (width / 4) as usize + 10;
if self.download_expected == 0 || self.extract_expected == 0 {
self.bar.set_message(format!("{status}"));
self.bar.tick();
return;
}
let total_expected = self.download_expected + self.extract_expected;
let total_done = self.download_done + self.extract_done;
let dl_percent =
((self.download_done as f64 / self.download_expected as f64) * 100.0) as u64;
let ex_percent = ((self.extract_done as f64 / self.extract_expected as f64) * 100.0) as u64;
let download_per_sec =
HumanBytes(self.download_estimator.steps_per_second(Instant::now()) as u64).to_string();
let download_done_human = HumanBytes(self.download_done).to_string();
let download_done_human = pad_string(&download_done_human, INFO_WIDTH)
.blue()
.bold()
.to_string();
let extract_done_human = HumanBytes(self.extract_done).to_string();
let extract_done_human = pad_string(&extract_done_human, INFO_WIDTH)
.green()
.bold()
.to_string();
let download_per_sec = pad_string(&format!("{download_per_sec}/s"), INFO_WIDTH)
.blue()
.bold()
.to_string();
let display = format!("{download_per_sec} | {download_done_human} | {extract_done_human} ");
let display_length = (INFO_WIDTH * 3) + 9;
// + 6 to account for final format
let total_length = status_len + display_length + 4;
let min = dl_percent.min(ex_percent);
let dl = dl_percent.saturating_sub(min);
let bar = MultiBar([
BarSegment::Dynamic(&DONE_CHAR, min),
BarSegment::Dynamic(&DOWNLOAD_CHAR, dl),
BarSegment::Dynamic(" ", 100 - min - dl),
])
.scale((width - total_length as u16) as u64);
let msg = match width {
0..50 => {
format!(
"{}: {}/{}",
name,
total_done,
if total_expected == 0 {
"-".to_string()
} else {
total_expected.to_string()
}
)
}
_ => {
format!("{status} {display} [{bar}]",)
}
};
self.bar.set_message(msg);
self.bar.tick();
}
}
impl Handler for DownloadHandler {
fn handle(
&mut self,
state: &mut crate::state::State,
action: &crate::action::Action,
) -> color_eyre::Result<bool> {
match action {
Action::Start {
start_type: StartFields::FileTransfer { target },
id,
parent,
..
} if parent == &self.copy_id => {
state.println(format!("Downloading {}", target))?;
self.id = *id;
// Handle global start action
Ok(true)
}
Action::Result {
fields:
ResultFields::Progress {
done,
expected,
running: _,
failed: _,
},
id,
} => {
if id == &self.id {
self.download_done = *done;
self.download_expected = *expected;
self.download_estimator.record(*done, Instant::now());
self.draw_bar(state.term_width);
}
if id == &self.copy_id {
self.extract_done = *done;
self.extract_expected = *expected;
self.draw_bar(state.term_width);
}
Ok(true)
}
Action::Stop { id } if id == &self.copy_id => {
self.bar.finish_and_clear();
Ok(false)
}
_ => Ok(true),
}
}
fn on_resize(&mut self, state: &mut crate::state::State) -> color_eyre::Result<()> {
self.draw_bar(state.term_width);
Ok(())
}
}

63
src/handlers/fetch.rs Normal file
View File

@@ -0,0 +1,63 @@
use std::borrow::Cow;
use indicatif::ProgressBar;
use owo_colors::OwoColorize;
use crate::{action::Action, handlers::Handler, nix_path, pad_string};
pub struct FetchHandler {
id: u64,
bar: ProgressBar,
path: String,
source: String,
}
impl FetchHandler {
pub fn new<'a>(
id: u64,
width: u16,
path: Cow<'a, str>,
source: Cow<'a, str>,
bar: ProgressBar,
) -> Self {
bar.enable_steady_tick(std::time::Duration::from_millis(100));
let new = Self {
id,
bar,
path: path.to_string(),
source: source.to_string(),
};
new.format(width);
new
}
fn format(&self, width: u16) {
let name = nix_path::extract_package_name_string(&self.path)
.expect("Failed to extract package name");
let chunk = (width - 15) / 2;
let name = pad_string(&name, chunk as usize);
let source = pad_string(&self.source, chunk as usize);
let name = format!("Querying {}", name.green().bold());
self.bar
.set_message(format!("{} on {}", name, source.yellow()));
}
}
impl Handler for FetchHandler {
fn handle(
&mut self,
_state: &mut crate::state::State,
action: &crate::action::Action,
) -> color_eyre::Result<bool> {
match action {
&Action::Stop { id, .. } if *id == self.id => {
self.bar.finish_and_clear();
Ok(false)
}
_ => Ok(true),
}
}
fn on_resize(&mut self, state: &mut crate::state::State) -> color_eyre::Result<()> {
self.format(state.term_width);
Ok(())
}
}

36
src/handlers/global.rs Normal file
View File

@@ -0,0 +1,36 @@
use indicatif::ProgressBar;
use crate::{
action::{Action, StartFields},
handlers::{Handler, fetch::FetchHandler},
};
pub struct GlobalHandler;
impl Handler for GlobalHandler {
fn handle(
&mut self,
state: &mut crate::state::State,
action: &crate::action::Action,
) -> color_eyre::Result<bool> {
match action {
Action::Start {
start_type: StartFields::QueryPathInfo { path, source },
id,
..
} => {
let bar = state.add_pb(ProgressBar::new_spinner());
state.plug(FetchHandler::new(
**id,
state.term_width,
path.clone(),
source.clone(),
bar,
));
// Handle global start action
Ok(true)
}
_ => Ok(true),
}
}
}

16
src/handlers/mod.rs Normal file
View File

@@ -0,0 +1,16 @@
use crate::action::Action;
pub mod download;
pub mod fetch;
pub mod global;
pub trait Handler {
fn handle(
&mut self,
state: &mut crate::state::State,
action: &Action,
) -> color_eyre::Result<bool>;
fn on_resize(&mut self, _state: &mut crate::state::State) -> color_eyre::Result<()> {
Ok(())
}
}

View File

@@ -1,7 +0,0 @@
pub mod action;
pub mod action_raw;
pub mod download_pb;
pub mod estimator;
pub mod multibar;
pub mod nix_path;
pub mod state_manager;

View File

@@ -1,290 +1,198 @@
use std::cell::LazyCell;
use std::sync::LazyLock;
use std::thread::sleep;
use std::time::Duration;
use console::{Term, style};
use indicatif::{MultiProgress, ProgressBar, ProgressStyle, TermLike};
use console::Term;
use crate::action::StartFields;
use crate::multibar::{BarSegment, MultiBar};
use crate::state_manager::{BuildEnumState, BuildState, State, StateManager};
static LAZY: LazyLock<i32> = LazyLock::new(|| {
println!("initializing");
92
});
use crate::state::State;
pub mod action;
pub mod action_raw;
pub mod download_pb;
pub mod estimator;
pub mod handlers;
pub mod multibar;
pub mod nix_path;
pub mod state;
pub mod state_manager;
#[derive(Debug, Clone)]
struct TextTerm;
impl TermLike for TextTerm {
fn width(&self) -> u16 {
50
}
fn move_cursor_up(&self, n: usize) -> std::io::Result<()> {
println!("Move cursor up by {n}");
Ok(())
}
fn move_cursor_down(&self, n: usize) -> std::io::Result<()> {
println!("Move cursor down by {n}");
Ok(())
}
fn move_cursor_right(&self, n: usize) -> std::io::Result<()> {
println!("Move cursor right by {n}");
Ok(())
}
fn move_cursor_left(&self, n: usize) -> std::io::Result<()> {
println!("Move cursor left by {n}");
Ok(())
}
fn write_line(&self, s: &str) -> std::io::Result<()> {
println!("write_line: {s:?}");
Ok(())
}
fn write_str(&self, s: &str) -> std::io::Result<()> {
println!("write_str: {s:?}");
Ok(())
}
fn clear_line(&self) -> std::io::Result<()> {
println!("Clear line");
Ok(())
}
fn flush(&self) -> std::io::Result<()> {
println!("Flush");
Ok(())
pub fn pad_string(s: &str, width: usize) -> String {
if s.len() >= width {
s.to_string()
} else {
let mut padded = s.to_string();
padded.push_str(&" ".repeat(width - s.len()));
padded
}
}
fn main() -> Result<(), color_eyre::Report> {
color_eyre::install().unwrap();
// println!("Lazy value: {}", *LAZY);
// let pb = ProgressBar::new(100);
// pb.set_draw_target(indicatif::ProgressDrawTarget::term_like(Box::new(TextTerm)));
//
// pb.set_style(
// ProgressStyle::default_bar()
// .template("{msg} [{bar:40.cyan/blue}] {pos:>3}%")
// .unwrap(),
// );
// pb.set_message("Example Progress Bar");
// for i in 0..=5 {
// pb.set_position(i);
// sleep(Duration::from_millis(50));
// }
// pb.finish_and_clear();
// let empty = style("-").blue().to_string();
// let bar = MultiBar([
// BarSegment::Dynamic("=", 10),
// BarSegment::Static(">"),
// BarSegment::Dynamic(empty.as_str(), 3),
// BarSegment::Dynamic(" ", 50),
// ])
// .scale(u64::from(term.size().1 - 2));
// println!("[{}]", bar);
// return Ok(());
let lines = std::fs::read_to_string("build.log")?;
let mut state = State::new(Term::stderr().size().1);
// let lines = lines.lines().take(0).collect::<Vec<_>>().join("\n");
let term = Term::stdout();
let mut state = State {
multi_progress: MultiProgress::new(),
manager: StateManager::new(),
separator: None,
width: term.size().1,
current_width: term.size().1,
term,
};
// let progress = MultiProgress::new();
// let lines_pb = state
// .multi_progress
// .add(ProgressBar::new(lines.lines().count() as u64));
// progress.println("Parsing build.log...")?;
// let pb1 = progress.add(ProgressBar::new(lines.lines().count() as u64));
// pb1.set_style(
// ProgressStyle::default_spinner()
// .template("[{elapsed_precise:>6}] {msg}")
// .unwrap(),
// );
// pb1.set_message("Processing line2342s\n|\n|\n>");
// let pb2 = progress.add(ProgressBar::new(lines.lines().count() as u64));
// pb2.set_style(
// ProgressStyle::default_spinner()
// .template("[{elapsed_precise:>6}] {msg}")
// .unwrap(),
// );
// pb2.set_message("Processing line2342s\n|\n|\n>");
// sleep(Duration::from_secs(1));
// let mut map = HashMap::new();
// let term = Term::stdout();
// let mut state = State {
// multi_progress: MultiProgress::new(),
// manager: StateManager::new(),
// separator: None,
// width: term.size().1,
// current_width: term.size().1,
// term,
// };
for line in lines.lines() {
// lines_pb.inc(1);
let line = line.strip_prefix("@nix ").unwrap_or(line);
sleep(Duration::from_millis(1));
let action = action::Action::parse(line)?;
match action {
action::Action::Msg { level, msg } => {
state.println(format!("MSG (level {level}): {msg}"))?;
}
action::Action::Start {
start_type,
id,
level: _,
parent,
text: _,
} => {
// state.progress.println(format!("START {start_type:?}"));
if let Some(parent) = state.manager.get(*parent) {
let mut child = parent.clone();
child.merge(&mut state, start_type);
child.tick(&mut state);
state.manager.insert_parent(*id, child);
};
// match start_type {
// StartFields::Substitute { source, target } => {
// state
// .manager
// .insert_parent(*id, BuildState::new(Some(source.to_string()), None));
//
// let build_state = state.manager.get_mut(*id).unwrap();
// build_state.state = BuildEnumState::Substituting;
state.handle(&action)?;
// match action {
// action::Action::Msg { level, msg } => {
// state.println(format!("MSG (level {level}): {msg}"))?;
// }
// StartFields::CopyPath {
// path,
// origin,
// destination,
// action::Action::Start {
// start_type,
// id,
// level: _,
// parent,
// text: _,
// } => {
// state.manager.add_child(*id, *parent);
// // state.progress.println(format!("START {start_type:?}"));
// if let Some(parent) = state.manager.get(*parent) {
// let mut child = parent.clone();
// child.merge(&mut state, start_type);
// child.tick(&mut state);
// state.manager.insert_parent(*id, child);
// };
// // match start_type {
// // StartFields::Substitute { source, target } => {
// // state
// // .manager
// // .insert_parent(*id, BuildState::new(Some(source.to_string()), None));
// //
// // let build_state = state.manager.get_mut(*id).unwrap();
// // build_state.state = BuildEnumState::Substituting;
// // }
// // StartFields::CopyPath {
// // path,
// // origin,
// // destination,
// // } => {
// // state.manager.add_child(*id, *parent);
// // }
// // StartFields::QueryPathInfo { path, source } => {
// // state.progress.println(format!(
// // "START QueryPathInfo (id: {}, parent: {}): path={}",
// // id, parent, path
// // ))?;
// // }
// // StartFields::FileTransfer { target } => {
// // // state.progress.println(format!(
// // // "START FileTransfer (id: {}, parent: {}): target={}",
// // // id, parent, target
// // // ))?;
// // if let Some(parent) = state.manager.get(*parent) {
// // state
// // .manager
// // .insert_parent(*id, BuildState::new(parent.path.clone(), None));
// // let build_state = state.manager.get_mut(*id).unwrap();
// // build_state.state = BuildEnumState::Downloading;
// // };
// //
// // // state.manager.add_child(*id, *parent);
// // // Add child ID mapping to parent
// // }
// // _ => {}
// // };
// }
// StartFields::QueryPathInfo { path, source } => {
// state.progress.println(format!(
// "START QueryPathInfo (id: {}, parent: {}): path={}",
// id, parent, path
// action::Action::Stop { id } => {
// state.manager.remove(*id);
// // Stop will only return Some when the last reference is stopped
// // if let Some(build_state) = state.manager.stop(*id) {
// // if let Some(pb) = &build_state.progress_bar {
// // pb.finish_and_clear();
// // state.progress.remove(pb);
// // }
// // state.progress.println(format!(
// // "Completed: {}",
// // build_state.path.as_deref().unwrap_or("unknown")
// // ))?;
// // }
// }
// action::Action::Result { id, fields } => match fields {
// action::ResultFields::FetchStatus(status) => {
// state.println(format!(
// "RESULT FetchStatus (id: {}): status={}",
// id, status
// ))?;
// }
// StartFields::FileTransfer { target } => {
// // state.progress.println(format!(
// // "START FileTransfer (id: {}, parent: {}): target={}",
// // id, parent, target
// // ))?;
// if let Some(parent) = state.manager.get(*parent) {
// state
// .manager
// .insert_parent(*id, BuildState::new(parent.path.clone(), None));
// let build_state = state.manager.get_mut(*id).unwrap();
// build_state.state = BuildEnumState::Downloading;
// action::ResultFields::Progress {
// done,
// expected,
// running,
// failed,
// } => {
// if expected == 0 {
// continue;
// };
//
// // state.manager.add_child(*id, *parent);
// // Add child ID mapping to parent
// if let Some(mut child) = state.manager.take(*id) {
// child.progress(&mut state, done, expected);
// state.manager.insert_parent(*id, child);
// }
// // sleep(Duration::from_millis(1));
// // if let Some(build_state) = state.manager.get_mut(*id)
// // && expected > 0
// // {
// // let percentage = if expected == 0 {
// // 0
// // } else {
// // (done * 100 / expected) as u64
// // };
// // match &build_state.progress_bar {
// // Some(pb) => {
// // if percentage > pb.position() {
// // pb.set_position(percentage);
// // };
// // }
// // None => {
// // state.progress.println(format!(
// // "Creating progress bar for id {} (done: {}, expected: {})",
// // id, done, expected
// // ))?;
// // let n = match build_state.state {
// // BuildEnumState::Downloading => "Downloading",
// // BuildEnumState::Substituting => "Substituting",
// // _ => "Processing",
// // };
// // let name =
// // nix_path::extract_full_name(build_state.path.as_ref().unwrap());
// // let pb = state.progress.add(
// // ProgressBar::new(100)
// // .with_style(
// // ProgressStyle::default_bar()
// // .template("{msg} [{bar:40.cyan/blue}] {pos:>3}%")
// // .unwrap(),
// // )
// // .with_message(format!(
// // "{n} {}",
// // name.as_deref().unwrap_or("unknown")
// // )),
// // );
// // pb.set_position(percentage);
// // build_state.progress_bar = Some(pb);
// // }
// // };
// // } else {
// // // state.progress.println(format!(
// // // "RESULT Progress (id: {}): done={}, expected={}, running={}, failed={}",
// // // id, done, expected, running, failed
// // // ))?;
// // };
// }
// _ => {}
// };
}
action::Action::Stop { id } => {
state.manager.remove(*id);
// Stop will only return Some when the last reference is stopped
// if let Some(build_state) = state.manager.stop(*id) {
// if let Some(pb) = &build_state.progress_bar {
// pb.finish_and_clear();
// state.progress.remove(pb);
// },
// }
// state.progress.println(format!(
// "Completed: {}",
// build_state.path.as_deref().unwrap_or("unknown")
// ))?;
// }
}
action::Action::Result { id, fields } => match fields {
action::ResultFields::FetchStatus(status) => {
state.println(format!(
"RESULT FetchStatus (id: {}): status={}",
id, status
))?;
}
action::ResultFields::Progress {
done,
expected,
running,
failed,
} => {
if expected == 0 {
continue;
};
if let Some(mut child) = state.manager.take(*id) {
child.progress(&mut state, done, expected);
state.manager.insert_parent(*id, child);
}
// sleep(Duration::from_millis(1));
// if let Some(build_state) = state.manager.get_mut(*id)
// && expected > 0
// {
// let percentage = if expected == 0 {
// 0
// } else {
// (done * 100 / expected) as u64
// };
// match &build_state.progress_bar {
// Some(pb) => {
// if percentage > pb.position() {
// pb.set_position(percentage);
// };
// }
// None => {
// state.progress.println(format!(
// "Creating progress bar for id {} (done: {}, expected: {})",
// id, done, expected
// ))?;
// let n = match build_state.state {
// BuildEnumState::Downloading => "Downloading",
// BuildEnumState::Substituting => "Substituting",
// _ => "Processing",
// };
// let name =
// nix_path::extract_full_name(build_state.path.as_ref().unwrap());
// let pb = state.progress.add(
// ProgressBar::new(100)
// .with_style(
// ProgressStyle::default_bar()
// .template("{msg} [{bar:40.cyan/blue}] {pos:>3}%")
// .unwrap(),
// )
// .with_message(format!(
// "{n} {}",
// name.as_deref().unwrap_or("unknown")
// )),
// );
// pb.set_position(percentage);
// build_state.progress_bar = Some(pb);
// }
// };
// } else {
// // state.progress.println(format!(
// // "RESULT Progress (id: {}): done={}, expected={}, running={}, failed={}",
// // id, done, expected, running, failed
// // ))?;
// };
}
_ => {}
},
}
}
Ok(())

View File

@@ -1,6 +1,6 @@
const NIX_STORE_PREFIX: &str = "/nix/store/";
const NIX_HASH_LENGTH: usize = 32;
pub fn extract_package_name(path: &str) -> Option<String> {
pub fn extract_package_name(path: &str) -> Option<Vec<&str>> {
let without_prefix = path.strip_prefix(NIX_STORE_PREFIX)?;
if without_prefix.len() <= NIX_HASH_LENGTH + 1 {
@@ -24,7 +24,10 @@ pub fn extract_package_name(path: &str) -> Option<String> {
return None;
}
Some(name_parts.join("-"))
Some(name_parts)
}
pub fn extract_package_name_string(path: &str) -> Option<String> {
extract_package_name(path).map(|f| f.join("-"))
}
pub fn extract_full_name(path: &str) -> Option<&str> {

90
src/state.rs Normal file
View File

@@ -0,0 +1,90 @@
use std::{io, marker::PhantomData, rc::Rc};
use console::style;
use indicatif::{MultiProgress, ProgressBar, ProgressFinish, ProgressStyle};
use crate::handlers::{Handler, download::SubstituteHandler, global::GlobalHandler};
pub struct State {
pub multi_progress: Rc<MultiProgress>,
pub handlers: Vec<Box<dyn Handler>>,
pub term_width: u16,
pub separator: Option<ProgressBar>,
}
impl State {
pub fn new(term_width: u16) -> Self {
let mut state = Self {
multi_progress: Rc::new(MultiProgress::new()),
handlers: Vec::new(),
term_width,
separator: None,
};
state.plug(GlobalHandler);
state.plug(SubstituteHandler);
state
}
pub fn handle(&mut self, action: &crate::action::Action) -> color_eyre::Result<()> {
let mut prev_handlers = std::mem::take(&mut self.handlers);
// Check if terminal was resized
let (_, term_width) = console::Term::stderr().size();
if term_width != self.term_width {
self.term_width = term_width;
for handler in &mut prev_handlers {
handler.on_resize(self)?;
}
}
if let Some(separator) = &self.separator {
separator.tick();
}
// Applies handles
let mut retain_result = Ok(());
prev_handlers.retain_mut(|h| match h.handle(self, action) {
Ok(x) => x,
Err(err) => {
retain_result = Err(err);
false
}
});
let mut new_handlers = std::mem::replace(&mut self.handlers, prev_handlers);
self.handlers.append(&mut new_handlers);
retain_result
}
pub fn plug<H: Handler + 'static>(&mut self, handler: H) {
self.handlers.push(Box::new(handler))
}
pub fn add_pb(&mut self, pb: ProgressBar) -> ProgressBar {
let separator = self.separator.get_or_insert_with(|| {
let separator = ProgressBar::new_spinner()
.with_style(
ProgressStyle::default_spinner()
.template(&style("··{wide_msg:<}").dim().to_string())
.expect("invalid template"),
)
.with_message("·".repeat(512))
.with_finish(ProgressFinish::AndClear);
let separator = self.multi_progress.insert(0, separator);
separator.set_length(0);
separator
});
self.multi_progress.insert_after(separator, pb)
// self.progress.add(pb)
}
pub fn add_pb_before(&mut self, before: &ProgressBar, pb: ProgressBar) -> ProgressBar {
self.multi_progress.insert_before(before, pb)
}
pub fn add_pb_after(&mut self, after: &ProgressBar, pb: ProgressBar) -> ProgressBar {
self.multi_progress.insert_after(after, pb)
}
pub fn println<I: AsRef<str>>(&self, msg: I) -> io::Result<()> {
self.multi_progress.println(msg)
}
}

View File

@@ -103,7 +103,8 @@ impl<'a> BuildState<'a> {
BuildEnumState::Substitute { source, target }
}
(BuildEnumState::Substitute { .. }, StartFields::CopyPath { path, .. }) => {
let name = nix_path::extract_package_name(&path).unwrap_or("unknown".to_string());
let name =
nix_path::extract_package_name_string(&path).unwrap_or("unknown".to_string());
let bar = state.add_pb(ProgressBar::new(100));
let bar = DownloadBar::new(bar, name, state.width);
BuildEnumState::SubstituteCopy { path, bar }