diff --git a/src/main.rs b/src/main.rs index 54d155c..be1f68c 100644 --- a/src/main.rs +++ b/src/main.rs @@ -37,6 +37,12 @@ fn main() { .subcommand( Command::new("schema") .about("Several table schema related utilities") + .arg( + arg!(-i --stdin ... "Read from stdin") + .required(false) + .action(ArgAction::SetTrue), + ) + .arg(arg!(-d --delimiter "Column delimiter. Assume ,").required(false)) .arg(arg!(-n --name "Table name").required(false)) .arg(arg!(-l --strlen "Default length for string columns").required(false)) .arg( @@ -219,8 +225,18 @@ fn main() { eprintln!("Could now write to parquet"); } } else if let Some(_matches) = matches.subcommand_matches("schema") { + let delimiter = match _matches.get_one::("delimiter") { + Some(delimiter) => delimiter.as_bytes()[0], + None => b',', + }; + let ldf = if _matches.get_flag("stdin") { + io::load_csv_from_stdin(delimiter) + } else { + io::read_ipc() + }; + if _matches.get_flag("summary") { - schema::print_schema(io::read_ipc()); + schema::print_schema(ldf); } else if _matches.get_flag("postgresql") { let name = _matches .get_one::("name")