dr/src/main.rs

47 lines
1.6 KiB
Rust
Raw Normal View History

2022-11-20 01:34:04 +01:00
mod io;
mod sql;
use clap::{arg, command, Command};
fn main() {
let matches = command!()
.subcommand(
Command::new("sql")
.about("Runs a sql statement on the file")
.arg(arg!([statement] "SQL statement"))
.arg(arg!(-d --delimiter <String> "Column delimiter").required(false)),
)
2022-11-20 01:34:04 +01:00
.subcommand(Command::new("print").about("Pretty prints the table"))
2022-11-20 23:00:58 +01:00
.subcommand(
Command::new("rpq")
.about("Read parquet file")
.arg(arg!([path] "Path to the parquet file")),
)
.get_matches();
if let Some(matches) = matches.subcommand_matches("sql") {
2022-11-20 01:34:04 +01:00
//if let Some(delimiter) = matches.get_one::<String>("delimiter") {
// println!("DEBUG: Delimiter: {delimiter}")
//} else {
// println!("DEBUG: No delimiter")
//}
if let Some(statement) = matches.get_one::<String>("statement") {
2022-11-20 01:34:04 +01:00
sql::execute(statement);
} else {
2022-11-20 01:34:04 +01:00
let mut df = io::load_csv_from_stdin();
io::dump_csv_to_stdout(&mut df);
}
2022-11-20 23:00:58 +01:00
} else if let Some(_matches) = matches.subcommand_matches("print") {
2022-11-20 01:34:04 +01:00
let df = io::load_csv_from_stdin();
println!("{}", df)
2022-11-20 23:00:58 +01:00
} else if let Some(matches) = matches.subcommand_matches("rpq") {
if let Some(path) = matches.get_one::<String>("path") {
let mut df = io::read_parquet(path.to_string());
io::dump_csv_to_stdout(&mut df);
} else {
eprintln!("File not found")
}
} else {
println!("No command provided. Please execute dr --help")
2022-11-20 01:34:04 +01:00
}
}