#[macro_use]
extern crate strum_macros;
extern crate strum;
use clap::{Parser, Subcommand};
use cnctd_utils::get_logo;
use ios::IosCommands;
use routes::route_command;
use tokio;
use dotenv::dotenv;
pub mod project;
pub mod routes;
pub mod scaffold;
pub mod config;
pub mod manager;
pub mod scripts;
pub mod ios;
#[derive(Parser)]
#[command(author, version, about = get_logo("cnctd"), long_about = None)]
struct Cli {
#[command(subcommand)]
command: Option<Commands>,
#[arg(short, long)]
update: Option<String>,
}
#[derive(Subcommand, Debug)]
pub enum Commands {
Config {
},
New {
},
Update {
#[arg(short, long)]
m: Option<String>,
},
Versions {
#[arg(short, long)]
d: Option<String>,
},
S {
#[command()]
name: String,
},
Bump {
#[command()]
version_part: Option<String>,
},
Repo {
},
Workspace {
},
Submodule {
},
Scripts {
},
Ios {
#[command(subcommand)]
command: IosCommands,
},
}
#[tokio::main]
async fn main() {
dotenv().ok();
let cli = Cli::parse();
match route_command(cli.command).await {
Ok(()) => {}
Err(e) => println!("Error: {}", e)
}
}