diff --git a/Cargo.lock b/Cargo.lock index 5853c9a..95ed244 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -175,6 +175,7 @@ dependencies = [ "color-eyre", "console", "indicatif", + "owo-colors", "serde", "serde_json", "serde_repr", diff --git a/Cargo.toml b/Cargo.toml index bee41f7..9f2c3fb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -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" diff --git a/build2.log b/build2.log new file mode 100644 index 0000000..0d9a428 --- /dev/null +++ b/build2.log @@ -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 {"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} diff --git a/src/download_pb.rs b/src/download_pb.rs index 63b45ba..ea52f47 100644 --- a/src/download_pb.rs +++ b/src/download_pb.rs @@ -6,6 +6,7 @@ use indicatif::{HumanBytes, MultiProgress, ProgressBar}; use crate::{ estimator::Estimator, multibar::{BarSegment, MultiBar}, + pad_string, }; static DOWNLOAD_CHAR: LazyLock = 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 - } -} diff --git a/src/handlers/download.rs b/src/handlers/download.rs new file mode 100644 index 0000000..53985e7 --- /dev/null +++ b/src/handlers/download.rs @@ -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 = LazyLock::new(|| "#".blue().bold().to_string()); +static DONE_CHAR: LazyLock = 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 { + 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 { + 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 { + 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(()) + } +} diff --git a/src/handlers/fetch.rs b/src/handlers/fetch.rs new file mode 100644 index 0000000..23d1845 --- /dev/null +++ b/src/handlers/fetch.rs @@ -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 { + 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(()) + } +} diff --git a/src/handlers/global.rs b/src/handlers/global.rs new file mode 100644 index 0000000..8f03de1 --- /dev/null +++ b/src/handlers/global.rs @@ -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 { + 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), + } + } +} diff --git a/src/handlers/mod.rs b/src/handlers/mod.rs new file mode 100644 index 0000000..2869ccf --- /dev/null +++ b/src/handlers/mod.rs @@ -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; + fn on_resize(&mut self, _state: &mut crate::state::State) -> color_eyre::Result<()> { + Ok(()) + } +} diff --git a/src/lib.rs b/src/lib.rs deleted file mode 100644 index bce08d0..0000000 --- a/src/lib.rs +++ /dev/null @@ -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; diff --git a/src/main.rs b/src/main.rs index d8190cd..9d7544a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -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 = 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::>().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; - // } - // 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 - // } - // _ => {} - // }; - } - 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 - // // ))?; - // }; - } - _ => {} - }, - } + state.handle(&action)?; + // 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; + // // } + // // 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 + // // } + // // _ => {} + // // }; + // } + // 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(()) diff --git a/src/nix_path.rs b/src/nix_path.rs index ace0ab0..6947e22 100644 --- a/src/nix_path.rs +++ b/src/nix_path.rs @@ -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 { +pub fn extract_package_name(path: &str) -> Option> { 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 { return None; } - Some(name_parts.join("-")) + Some(name_parts) +} +pub fn extract_package_name_string(path: &str) -> Option { + extract_package_name(path).map(|f| f.join("-")) } pub fn extract_full_name(path: &str) -> Option<&str> { diff --git a/src/state.rs b/src/state.rs new file mode 100644 index 0000000..cb55cab --- /dev/null +++ b/src/state.rs @@ -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, + pub handlers: Vec>, + pub term_width: u16, + pub separator: Option, +} + +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(&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>(&self, msg: I) -> io::Result<()> { + self.multi_progress.println(msg) + } +} diff --git a/src/state_manager.rs b/src/state_manager.rs index 9b887ad..25340e4 100644 --- a/src/state_manager.rs +++ b/src/state_manager.rs @@ -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 }