le: bool,
/// Input file.
- #[arg(required = true)]
- input: PathBuf,
+ #[arg(required = true, name = "input")]
+ input_file_name: PathBuf,
}
fn main() -> Result<()> {
- let Args { be, le, input } = Args::parse();
+ let Args { be, le, input_file_name } = Args::parse();
if stdout().is_terminal() {
return Err(anyhow!(
"not writing binary data to a terminal; redirect to a file"
(false, true) => Endian::Little,
(true, true) => return Err(anyhow!("can't use both `--be` and `--le`")),
};
- let input = read_to_string(&input)?;
- let output = sack(&input, endian)?;
- stdout().write(&output)?;
+ let input = read_to_string(&input_file_name)?;
+ let input_file_name = input_file_name.to_string_lossy();
+ let output = sack(&input, Some(&input_file_name), endian)?;
+ stdout().write_all(&output)?;
Ok(())
}