cp.rs
1 use core::fmt::Write; 2 use alloc::string::String as AllocString; 3 use crate::filesystems::sd::copy_file; 4 5 pub fn run(args: &str) -> AllocString { 6 let parts: heapless::Vec<&str, 2> = args.splitn(2, ' ').collect(); 7 if parts.len() < 2 { 8 return super::fmt_usage("cp <src> <dst>"); 9 } 10 11 let src = parts[0].trim(); 12 let dst = parts[1].trim(); 13 14 match copy_file(src, dst) { 15 Ok(bytes) => { 16 let mut out = AllocString::new(); 17 let _ = write!(out, "copied {} -> {} ({} bytes)\r\n", src, dst, bytes); 18 out 19 } 20 Err(error) => super::fmt_error(&error), 21 } 22 }