main: Accept addresses as command-line arguments
Now that the `MacAddress` struct can handle parsing arbitrary input without panicking, the main entry point can accept values from the user in the form of command-line arguments. Users can pass one or more addresses as positional arguments to the `wakeonlan` program, and a magic packet will be sent to each one in series.master
parent
823cfc2593
commit
60dd1f72dc
15
src/main.rs
15
src/main.rs
|
@ -1,9 +1,22 @@
|
|||
use std::env;
|
||||
|
||||
mod mac;
|
||||
mod magic;
|
||||
|
||||
|
||||
fn main() {
|
||||
let mac = mac::MacAddress::from_string("0c:9d:92:0e:3a:41").unwrap();
|
||||
let mut args = env::args();
|
||||
args.next();
|
||||
for arg in args {
|
||||
let mac = match mac::MacAddress::from_string(&arg) {
|
||||
Ok(m) => m,
|
||||
Err(e) => {
|
||||
eprintln!("Invalid address: {} ({})", &arg, e);
|
||||
continue;
|
||||
},
|
||||
};
|
||||
let packet = magic::MagicPacket::new(&mac);
|
||||
println!("Sending magic packet to {}", mac);
|
||||
packet.send().unwrap();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue