You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
phd/src/main.rs

74 lines
1.8 KiB
Rust

4 years ago
use phd;
4 years ago
use std::process;
5 years ago
fn main() {
4 years ago
let args: Vec<String> = std::env::args().collect();
let mut root = ".";
let mut iter = args.iter();
let mut host = "localhost";
4 years ago
let mut port = 70;
while let Some(arg) = iter.next() {
match arg.as_ref() {
"--version" | "-v" | "-version" => return print_version(),
4 years ago
"--help" | "-help" => return print_help(),
"--port" | "-p" | "-port" => {
if let Some(p) = iter.next() {
4 years ago
port = p
.parse()
.map_err(|_| {
eprintln!("bad port: {}", p);
process::exit(1)
})
.unwrap();
}
}
4 years ago
"-h" => {
if let Some(h) = iter.next() {
host = h;
} else {
return print_help();
}
}
"--host" | "-host" => {
if let Some(h) = iter.next() {
host = h;
}
}
_ => {
if let Some('-') = arg.chars().nth(0) {
eprintln!("unknown flag: {}", arg);
process::exit(1);
} else {
root = arg;
}
}
}
4 years ago
}
if let Err(e) = phd::server::start(host, port, root) {
5 years ago
eprintln!("{}", e);
}
}
4 years ago
fn print_help() {
4 years ago
println!(
"Usage:
4 years ago
phd [options] <root directory>
4 years ago
Options:
-p, --port Port to bind to.
4 years ago
-h, --host Hostname to use when generating links.
Other flags:
4 years ago
-h, --help Print this screen.
-v, --version Print phd version."
);
}
fn print_version() {
println!("phd v{}", env!("CARGO_PKG_VERSION"));
}