alixt 0.5.0

A command line http API testing utility with TOML configuration
Documentation
use std::process::exit;

use clap::Parser;

use alixt::{Args, request, parse_file, template};
use alixt::Error as ApiError;


fn main() {
    let mut args = Args::parse();

    if args.generate_template {
        if let Err(e) = template::generate() {
            eprintln!("Failed to generate template file: {e:#?}")
        }
        return;
    }

    if let Some(file) = args.file.take() {
        match parse_file(file) {
            Ok(true) => {
                println!("\n[SUCCESS]: All tests passed.");
                exit(0);
            },
            Ok(false) => {
                println!("\n[FAILURE]: One or more tests failed.");
                exit(1);
            },
            Err(ApiError::Toml(e)) => {
                println!("[ERROR] toml parse error: \n----\n{e}");
                exit(1);
            },
            Err(e) => {
                println!("[ERROR]: {e:#?}");
                exit(1);
            }
        }
    } else {
        if let Err(e) = request(
            args.method,
            &None,
            &args.url,
            &args.port,
            &args.target,
            &args.body,
        ) {
            println!("[ERROR]: {e:#?}");
            exit(1);
        }
    }
}