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.
phetch/src/main.rs

69 lines
1.4 KiB
Rust

5 years ago
#![allow(unused_must_use)]
extern crate termion;
mod gopher;
mod menu;
5 years ago
mod text;
5 years ago
mod ui;
5 years ago
use ui::UI;
5 years ago
5 years ago
fn main() {
5 years ago
let args: Vec<String> = std::env::args().collect();
if args.len() < 2 {
5 years ago
print_usage();
5 years ago
return;
}
5 years ago
let url = args.get(1).unwrap();
5 years ago
if url == "-raw" || url == "-r" || url == "--raw" {
if args.len() > 2 {
let url = args.get(2).unwrap();
print_raw(url);
} else {
eprintln!("-raw needs gopher-url");
}
return;
}
if url == "-version" || url == "-v" || url == "--version" {
5 years ago
print_version();
return;
}
5 years ago
if url == "-help" || url == "-h" || url == "--help" {
5 years ago
print_usage();
5 years ago
return;
}
5 years ago
5 years ago
let mut ui = UI::new();
ui.open(url);
5 years ago
ui.run();
5 years ago
}
5 years ago
fn print_version() {
println!("\x1b[93;1mphetch v0.0.1-dev\x1b[m");
}
5 years ago
fn print_usage() {
5 years ago
println!(
"\x1B[93;1mUsage:\x1B[0m
5 years ago
phetch <gopher-url> # Show GopherHole at URL
phetch -r, --raw <gopher-url> # Print raw Gopher response.
phetch -h, --help # Show this screen.
phetch -v, --version # Show phetch version."
5 years ago
);
5 years ago
}
5 years ago
fn print_raw(url: &str) {
gopher::fetch_url(url)
.and_then(|x| {
println!("{}", x);
Ok(())
})
5 years ago
.map_err(|e| {
eprintln!("{}", e);
std::process::exit(1);
});
5 years ago
}