From bab768082b9fb15768c7a6f85098cac5bf723c01 Mon Sep 17 00:00:00 2001 From: STEVAN Antoine <antoine.stevan@isae-supaero.fr> Date: Wed, 6 Dec 2023 12:01:26 +0000 Subject: [PATCH] take bytes path as argument in `komodo.nu` and `cargo run` (dragoon/komodo!9) this is to make the passing of bytes easier as `cargo run` wants strings. --- README.md | 9 +++++++-- komodo.nu | 6 +++--- src/main.rs | 11 +++++++---- 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index cc7c7d7e..9a299f76 100644 --- a/README.md +++ b/README.md @@ -18,16 +18,21 @@ use komodo.nu [ ] use binary.nu [ "bytes decode" ] -let bytes = open komodo.nu +use std assert komodo build +let bytes = "tests/dragoon_32x32.png" + komodo setup $bytes komodo prove $bytes --fec-params {k: 3, n: 5} komodo verify blocks/0.bin blocks/1.bin -(komodo reconstruct blocks/0.bin blocks/2.bin blocks/3.bin | bytes decode) == $bytes +let actual = komodo reconstruct blocks/0.bin blocks/2.bin blocks/3.bin | bytes decode +let expected = open $bytes | into binary | to text | from json | bytes decode +assert equal $actual $expected +print "reconstruction was successful" ``` `true` should be printed at the end :thumbsup: diff --git a/komodo.nu b/komodo.nu index 92dd8b05..752b87e9 100644 --- a/komodo.nu +++ b/komodo.nu @@ -11,7 +11,7 @@ def "nu-complete log-levels" []: nothing -> list<string> { } def run-komodo [ - args: record<bytes: string, k: int, n: int, do_generate_powers: bool, powers_file: path, do_reconstruct_data: bool, do_verify_blocks: bool, block_files: list<string>>, + args: record<bytes: path, k: int, n: int, do_generate_powers: bool, powers_file: path, do_reconstruct_data: bool, do_verify_blocks: bool, block_files: list<string>>, --log-level: string, ]: nothing -> any { with-env {RUST_LOG: $log_level} { @@ -37,7 +37,7 @@ export def "komodo build" [] { } export def "komodo setup" [ - bytes: string, + bytes: path, --powers-file: path = "powers.bin", --log-level: string@"nu-complete log-levels" = "INFO" ]: nothing -> nothing { @@ -54,7 +54,7 @@ export def "komodo setup" [ } export def "komodo prove" [ - bytes: string, + bytes: path, --fec-params: record<k: int, n: int>, --powers-file: path = "powers.bin", --log-level: string@"nu-complete log-levels" = "INFO" diff --git a/src/main.rs b/src/main.rs index 6a733041..f35deff1 100644 --- a/src/main.rs +++ b/src/main.rs @@ -24,11 +24,14 @@ const VALIDATE: Validate = Validate::Yes; const BLOCK_DIR: &str = "blocks/"; fn parse_args() -> (Vec<u8>, usize, usize, bool, String, bool, bool, Vec<String>) { - let bytes = std::env::args() + let bytes_path = std::env::args() .nth(1) - .expect("expected bytes as first positional argument") - .as_bytes() - .to_vec(); + .expect("expected path to bytes as first positional argument"); + let bytes = if bytes_path.is_empty() { + vec![] + } else { + std::fs::read(bytes_path).unwrap() + }; let k: usize = std::env::args() .nth(2) .expect("expected k as second positional argument") -- GitLab