use std::{path::PathBuf, process::Command}; use crate::cli::Cli; use clap::Parser; mod cli; mod commands; fn main() { let args = Cli::parse(); match args.commands { cli::Commands::Test { host } => commands::test::test(host), cli::Commands::BuildPkg { package } => commands::build_pkg::build_pkg(package), cli::Commands::Shell { package } => commands::shell::shell(package), cli::Commands::Project(project_args) => commands::project::project(project_args), cli::Commands::PackageDefinition { package } => { commands::package_definition::package_definition(package) } cli::Commands::OptionDefinition { option } => { commands::option_definition::option_definition(option) } cli::Commands::Completions { shell } => commands::completions::completions(shell), } } fn npins( source_type: &str, display_name: &str, branch: &str, user: &str, repo: &str, current_dir: &PathBuf, ) { match Command::new("npins") .args([ "add", source_type, "--name", display_name, "-b", branch, user, repo, ]) .current_dir(current_dir) .status() { Ok(_) => { println!("Success") } Err(_) => { println!("Failure") } } } fn bat(file: String) { match Command::new("bat").arg(file.trim()).status() { Ok(_) => { println!("Success") } Err(_) => { println!("Failure") } }; }