use std::io;
use clap::Parser;
use clap_stdin::FileOrStdin;
use pc_rs::parse_columns;
#[derive(Debug, Parser)]
#[command(author, version, about, long_about = None)]
struct Args {
column: usize,
#[clap(default_value = "-")]
input: FileOrStdin,
#[clap(short, long, default_value = " ")]
delimiter: String,
#[clap(short, long, default_value = "\n")]
separator: String,
}
fn main() -> anyhow::Result<()> {
let args = Args::parse();
if let Err(err) = print_columns(args) {
eprintln!("ERROR: {err:#}");
}
Ok(())
}
fn print_columns(args: Args) -> anyhow::Result<()> {
let source = io::BufReader::new(args.input.into_reader()?);
parse_columns(source, args.column, &args.delimiter, |col| {
print!("{col}{}", args.separator)
})?;
Ok(())
}