Compare commits
2 Commits
d4ef21e243
...
minimal-ve
| Author | SHA1 | Date | |
|---|---|---|---|
| 3e557665c9 | |||
| faa5ce8549 |
17
Cargo.toml
17
Cargo.toml
@@ -5,12 +5,25 @@ edition = "2024"
|
|||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
clap = { version = "4.0.7", features = ["derive", "env"] }
|
clap = { version = "4.0.7", features = ["derive", "env"] }
|
||||||
colored = "2.0.0"
|
|
||||||
itertools = "0.10.0"
|
|
||||||
reqwest = { version = "0.11.13", features = ["json", "stream", "multipart"] }
|
reqwest = { version = "0.11.13", features = ["json", "stream", "multipart"] }
|
||||||
serde = { version = "1.0.152", features = ["derive"] }
|
serde = { version = "1.0.152", features = ["derive"] }
|
||||||
tokio = { version = "1.24.2", features = ["macros", "rt-multi-thread"] }
|
tokio = { version = "1.24.2", features = ["macros", "rt-multi-thread"] }
|
||||||
|
|
||||||
|
# Grand-dependency Pins ----
|
||||||
|
# Fixes: Reqwest uses too-old version of crate `log`
|
||||||
|
log = "0.4.6"
|
||||||
|
|
||||||
|
# Debian 12 uses OpenSSL 3.x and older libssl-sys crates are angry about that
|
||||||
|
|
||||||
|
# Fixes: native lib lookup.
|
||||||
|
# Causes: missing item in crate `ffi`
|
||||||
|
openssl-sys = "0.9.64"
|
||||||
|
|
||||||
|
# Fixes: missing item in crate `ffi` (from openssl-sys)
|
||||||
|
openssl = "0.10.35"
|
||||||
|
|
||||||
|
# End Grand-dependency Pins ----
|
||||||
|
|
||||||
# Packages available in Debian (Sid)
|
# Packages available in Debian (Sid)
|
||||||
# clap = "4.5.23"
|
# clap = "4.5.23"
|
||||||
# reqwest = "0.12.15"
|
# reqwest = "0.12.15"
|
||||||
|
|||||||
15
src/main.rs
15
src/main.rs
@@ -33,18 +33,9 @@ async fn main() -> Result<(), gt_tool::Error> {
|
|||||||
gt_tool::cli::Commands::ListReleases => {
|
gt_tool::cli::Commands::ListReleases => {
|
||||||
let releases =
|
let releases =
|
||||||
gt_tool::api::release::list_releases(&client, &args.gitea_url, &args.repo).await?;
|
gt_tool::api::release::list_releases(&client, &args.gitea_url, &args.repo).await?;
|
||||||
// Print in reverse order so the newest items are closest to the
|
for release in releases {
|
||||||
// user's command prompt. Otherwise the newest item scrolls off the
|
println!("{:?}", release);
|
||||||
// screen and can't be seen.
|
}
|
||||||
let _ = itertools::Itertools::intersperse(
|
|
||||||
releases
|
|
||||||
.iter()
|
|
||||||
.rev()
|
|
||||||
.map(|release| release.to_string()),
|
|
||||||
String::from("")
|
|
||||||
)
|
|
||||||
.map(|release| println!("{}", release))
|
|
||||||
.fold((), |_, _| () );
|
|
||||||
}
|
}
|
||||||
gt_tool::cli::Commands::CreateRelease {
|
gt_tool::cli::Commands::CreateRelease {
|
||||||
name,
|
name,
|
||||||
|
|||||||
@@ -1,6 +1,3 @@
|
|||||||
use std::fmt::Display;
|
|
||||||
|
|
||||||
use colored::Colorize;
|
|
||||||
use serde::{Deserialize, Serialize};
|
use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
@@ -22,36 +19,6 @@ pub struct Release {
|
|||||||
author: Author,
|
author: Author,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Display for Release {
|
|
||||||
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
|
||||||
let tag = "Tag:".green().bold();
|
|
||||||
let name = "Name:".green();
|
|
||||||
let published = "Published:".bright_green();
|
|
||||||
let created = "Created:".green().dimmed();
|
|
||||||
let author = "Author:".blue();
|
|
||||||
let body = if self.body.len() > 0 {
|
|
||||||
&self.body.white()
|
|
||||||
} else {
|
|
||||||
&String::from("(empty body)").dimmed()
|
|
||||||
};
|
|
||||||
|
|
||||||
write!(f,
|
|
||||||
"{tag} {}
|
|
||||||
{name} {}
|
|
||||||
{}
|
|
||||||
{published} {} ({created} {})
|
|
||||||
{author} {} ({})",
|
|
||||||
self.tag_name.bold(),
|
|
||||||
self.name,
|
|
||||||
body,
|
|
||||||
self.published_at,
|
|
||||||
self.created_at.dimmed(),
|
|
||||||
self.author.login,
|
|
||||||
self.author.email,
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Debug, Deserialize, Serialize)]
|
#[derive(Debug, Deserialize, Serialize)]
|
||||||
pub struct Author {
|
pub struct Author {
|
||||||
id: usize,
|
id: usize,
|
||||||
|
|||||||
Reference in New Issue
Block a user