proxy_cfg 0.4.2

A library to get proxy configuration from the OS.
Documentation
#![allow(clippy::print_stdout, clippy::unwrap_used, unused_crate_dependencies)]

use std::{env, process};

use proxy_cfg::{ProxyConfig, get_proxy_config};
use url::Url;

fn main() {
    let args: Vec<String> = env::args().skip(1).collect();
    if args.is_empty() {
        match get_proxy_config() {
            Ok(Some(ProxyConfig { proxies, .. })) => {
                for (_, p) in proxies {
                    println!("{}", p);
                }
            }
            Ok(None) => println!("No proxy configured"),
            Err(e) => {
                println!("Error getting proxies: {:?}", e);
                process::exit(1);
            }
        };
    } else {
        for arg in args {
            match get_proxy_config() {
                Ok(Some(proxy_config)) => match proxy_config.get_proxy_for_url(&Url::parse(&arg).unwrap()) {
                    Some(proxy) => println!("{} : {}", arg, proxy),
                    None => println!("No proxy needed for URL: '{}'", arg),
                },
                Ok(None) => println!("No proxy configured"),
                Err(e) => {
                    println!("Error getting proxies: {:?}", e);
                    process::exit(1);
                }
            }
        }
    }
}