21 lines
619 B
Rust
21 lines
619 B
Rust
//
|
|
use color_eyre::eyre::eyre;
|
|
use color_eyre::Result;
|
|
|
|
use crate::FullCtx;
|
|
|
|
pub(crate) trait Execute {
|
|
async fn execute(&self, ctx: &FullCtx) -> Result<()>;
|
|
}
|
|
|
|
impl Execute for crate::Command {
|
|
async fn execute(&self, ctx: &FullCtx) -> Result<()> {
|
|
match self {
|
|
Self::Init => Err(eyre!("Config file already exists. Not overwriting it.")),
|
|
Self::Check => crate::check::run(ctx).await,
|
|
Self::Import => crate::import::run(ctx).await,
|
|
Self::Trello(cmd) => cmd.execute(ctx).await,
|
|
Self::Nextcloud(cmd) => cmd.execute(ctx).await,
|
|
}
|
|
}
|
|
}
|