use anyhow::{anyhow, Result}; use reqwest::{header, Client}; use std::path::PathBuf; use structopt::StructOpt; mod changelog; mod cmd; mod git; mod gitea; mod version; pub(crate) use cmd::*; // Name your user agent after your app? static APP_USER_AGENT: &str = concat!(env!("CARGO_PKG_NAME"), "/", env!("CARGO_PKG_VERSION")); pub(crate) fn client(c: &cmd::Common) -> Result { let mut headers = header::HeaderMap::new(); let auth = format!("token {}", &c.token); let auth = auth.as_str(); headers.insert(header::AUTHORIZATION, header::HeaderValue::from_str(auth)?); Ok(Client::builder() .user_agent(APP_USER_AGENT) .default_headers(headers) .build()?) } #[tokio::main] async fn main() -> Result<()> { let _ = kankyo::init(); let cmd = cmd::Cmd::from_args(); match cmd { Cmd::Delete { common, tag } => cmd::delete::run(common, tag).await, Cmd::Download { common, fname, tag } => cmd::download::run(common, fname, tag).await, Cmd::DronePlugin { env } => cmd::drone_plugin::run(env).await, Cmd::Edit { common, description, release_meta, tag, } => cmd::edit::run(common, description, release_meta, tag).await, Cmd::Info { common, json, tag } => cmd::info::run(common, json, tag).await, Cmd::Release { common, changelog, tag, release_meta, } => cmd::release::run(common, changelog, tag, release_meta).await, Cmd::Upload { common, fname, tag } => cmd::upload::run(common, fname, tag).await, } }