From 3c340b28bdc812b9c13393c9e2bb378ba7dd9ec8 Mon Sep 17 00:00:00 2001 From: Florian Klink Date: Sat, 2 Sep 2023 21:16:35 +0300 Subject: refactor(tvix/{cli,store}): move TvixStoreIO to tvix-cli crate This trait is eval-specific, there's no point in dealing with these things in tvix-store. This implements the EvalIO interface for a Tvix store. The proper place for this glue code (for now) is tvix-cli, which knows about both tvix-store and tvix-eval. There's one annoyance with this move: The `tvix-store import` subcommand previously also used the TvixStoreIO implementation (because it conveniently did what we wanted). Some of this code had to be duplicated, mostly logic to calculate the NAR-based output path and create the PathInfo object. Some, but potentially more of this can be extracted into helper functions in a shared crate, and then be used from both TvixStoreIO in tvix-cli as well as the tvix-store CLI entrypoint. Change-Id: Ia7515e83c1b54f95baf810fbd8414c5521382d40 Reviewed-on: https://cl.tvl.fyi/c/depot/+/9212 Tested-by: BuildkiteCI Reviewed-by: tazjin Autosubmit: flokli --- tvix/cli/Cargo.toml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'tvix/cli/Cargo.toml') diff --git a/tvix/cli/Cargo.toml b/tvix/cli/Cargo.toml index 4b7081906f..caebb169aa 100644 --- a/tvix/cli/Cargo.toml +++ b/tvix/cli/Cargo.toml @@ -11,14 +11,15 @@ path = "src/main.rs" nix-compat = { path = "../nix-compat" } tvix-store = { path = "../store", features = []} tvix-eval = { path = "../eval" } -rustyline = "10.0.0" +bytes = "1.4.0" clap = { version = "4.0", features = ["derive", "env"] } +data-encoding = "2.3.3" dirs = "4.0.0" +rustyline = "10.0.0" smol_str = "0.2.0" ssri = "7.0.0" -data-encoding = "2.3.3" thiserror = "1.0.38" -bytes = "1.4.0" +tracing = "0.1.37" [dependencies.wu-manber] git = "https://github.com/tvlfyi/wu-manber.git" -- cgit 1.4.1