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
19
src/main.rs
19
src/main.rs
|
@ -1,9 +1,22 @@
|
||||||
|
use std::env;
|
||||||
|
|
||||||
mod mac;
|
mod mac;
|
||||||
mod magic;
|
mod magic;
|
||||||
|
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let mac = mac::MacAddress::from_string("0c:9d:92:0e:3a:41").unwrap();
|
let mut args = env::args();
|
||||||
let packet = magic::MagicPacket::new(&mac);
|
args.next();
|
||||||
packet.send().unwrap();
|
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