mirror of
https://github.com/uutils/coreutils.git
synced 2026-06-10 15:48:22 -07:00
sum: handle multiple file args
This commit is contained in:
+15
-13
@@ -111,23 +111,25 @@ pub fn uumain(args: Vec<String>) -> int {
|
||||
|
||||
let sysv = matches.opt_present("sysv");
|
||||
|
||||
let file = if matches.free.is_empty() {
|
||||
"-"
|
||||
let files = if matches.free.is_empty() {
|
||||
Vec::from_elem(1, "-".to_string())
|
||||
} else {
|
||||
matches.free.get(0).as_slice()
|
||||
matches.free
|
||||
};
|
||||
|
||||
let reader = match open(file) {
|
||||
Ok(f) => f,
|
||||
_ => crash!(1, "unable to open file")
|
||||
};
|
||||
let (blocks, sum) = if sysv {
|
||||
sysv_sum(reader)
|
||||
} else {
|
||||
bsd_sum(reader)
|
||||
};
|
||||
for file in files.iter() {
|
||||
let reader = match open(file.as_slice()) {
|
||||
Ok(f) => f,
|
||||
_ => crash!(1, "unable to open file")
|
||||
};
|
||||
let (blocks, sum) = if sysv {
|
||||
sysv_sum(reader)
|
||||
} else {
|
||||
bsd_sum(reader)
|
||||
};
|
||||
|
||||
println!("{} {}", sum, blocks);
|
||||
println!("{} {}", sum, blocks);
|
||||
}
|
||||
|
||||
0
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user