1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
use crate::cli::repo::info::RepoInfoArgs;
use crate::client::BergClient;
use crate::render::spinner::spin_until_ready;
use crate::types::api::repository::Repository;
pub async fn info_repo(_args: RepoInfoArgs, client: &BergClient) -> anyhow::Result<()> {
let repo_data = spin_until_ready(client.get_repo_info()).await?;
present_repo_info(repo_data);
Ok(())
}
fn present_repo_info(repo_data: Repository) {
use crate::render::table::builder::BergTableBuilder;
use term_table::row::Row;
use term_table::table_cell::{Alignment, TableCell};
let rows = [
Row::new([
TableCell::new_with_alignment("Repository Name", 1, Alignment::Left),
TableCell::new_with_alignment(repo_data.name, 1, Alignment::Center),
]),
Row::new([
TableCell::new_with_alignment("Repository Owner", 1, Alignment::Left),
TableCell::new_with_alignment(repo_data.owner.username, 1, Alignment::Center),
]),
Row::new([
TableCell::new_with_alignment("Stars", 1, Alignment::Left),
TableCell::new_with_alignment(
format!("{}⭐", repo_data.stars_count),
1,
Alignment::Center,
),
]),
];
let table = BergTableBuilder::new().add_rows(rows).build();
println!("{}", table.render());
}