anyscript-compiler 0.1.3

A compiler for the AnyScript programming language, and Self Extracted Archives
Documentation
use anyscript_compiler::parser::ReadShebang;
use std::env;

fn read_shebang(shebang: &str) -> (String, String) {
    let mut parsed = ReadShebang::new(shebang.to_string());
    (parsed.get_interpreter_line(), parsed.get_path_line())
}

fn show_usage(stdout: bool) {
    if stdout {
        println!("Usage: anyscript [OPTION] <FLAGS>");
        println!("   -s, --shebang [Shebang Line]             Control the Shebang.");
        println!("   -h, --help                              Show this help message.");
    } else {
        eprintln!("Usage: anyscript [OPTION] <FLAGS>");
        eprintln!("   -s, --shebang [Shebang Line]             Control the Shebang.");
        eprintln!("   -h, --help                              Show this help message.");
    }
}

fn main() {
    let all_args: Vec<String> = env::args().collect();
    if all_args.len() < 2 {
        show_usage(true);
        return;
    }

    let arg_1 = all_args.get(1).unwrap();
    if arg_1 == "--shebang" || arg_1 == "-s" {
        if all_args.len() < 3 {
            eprintln!("Fehler: Shebang-Zeile fehlt.");
            show_usage(false);
            return;
        }
        let arg_2 = all_args.get(2).unwrap();
        let (interpreter, path) = read_shebang(arg_2);
        println!("Interpreter: {}", interpreter);
        println!("Path: {}", path);
    } else if arg_1 == "--help" || arg_1 == "-h" {
        show_usage(false);
    } else {
        show_usage(true);
    }
}