// 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 => todo!(), //crate::import::run(ctx).await, Self::Trello(cmd) => cmd.execute(ctx).await, Self::Nextcloud(cmd) => cmd.execute(ctx).await, } } }