2024-04-15 21:08:45 -04:00
|
|
|
use anyhow::{Context, Result};
|
2024-04-15 17:54:57 -04:00
|
|
|
use clap::Subcommand;
|
|
|
|
|
|
|
|
mod check;
|
|
|
|
mod init;
|
2024-04-17 09:55:50 -04:00
|
|
|
mod update;
|
2024-04-15 17:54:57 -04:00
|
|
|
|
|
|
|
#[derive(Subcommand)]
|
|
|
|
pub enum DevCommands {
|
|
|
|
Init,
|
|
|
|
Check,
|
2024-04-17 09:55:50 -04:00
|
|
|
Update,
|
2024-04-15 17:54:57 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
impl DevCommands {
|
2024-04-17 09:55:50 -04:00
|
|
|
pub fn run(self) -> Result<()> {
|
2024-04-15 17:54:57 -04:00
|
|
|
match self {
|
2024-04-15 21:08:45 -04:00
|
|
|
DevCommands::Init => init::init().context(INIT_ERR),
|
2024-04-17 09:55:50 -04:00
|
|
|
DevCommands::Check => check::check(),
|
|
|
|
DevCommands::Update => update::update(),
|
2024-04-15 17:54:57 -04:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2024-04-15 21:08:45 -04:00
|
|
|
|
|
|
|
const INIT_ERR: &str = "Initialization failed.
|
|
|
|
After resolving the issue, delete the `rustlings` directory (if it was created) and try again";
|