feat: add errout for interactive for script support and atty for clean output
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2024-09-23 21:35:10 +02:00
parent c9aacf0ecd
commit f0f81f8a0b
10 changed files with 137 additions and 21 deletions

View File

@@ -88,16 +88,21 @@ impl RootCommand {
if clone {
let git_clone = self.app.git_clone();
let mut wrap_cmd =
InlineCommand::new(format!("cloning: {}", repo.to_rel_path().display()));
let repo = repo.clone();
wrap_cmd
.execute(move || async move {
git_clone.clone_repo(&repo, force_refresh).await?;
if atty::is(atty::Stream::Stdout) && shell {
let mut wrap_cmd =
InlineCommand::new(format!("cloning: {}", repo.to_rel_path().display()));
let repo = repo.clone();
wrap_cmd
.execute(move || async move {
git_clone.clone_repo(&repo, force_refresh).await?;
Ok(())
})
.await?;
Ok(())
})
.await?;
} else {
eprintln!("cloning repository...");
git_clone.clone_repo(&repo, force_refresh).await?;
}
} else {
tracing::info!("skipping clone for repo: {}", &repo.to_rel_path().display());
}