use crate::forgejo;
use crate::tokens;
#[derive(Debug, usage_rs::Args)]
#[usage(
verbatim_doc_comment,
example(
r###"mise token forgejo
codeberg.org: a180…61f6 (source: FORGEJO_TOKEN)"###
),
example(
r###"mise token forgejo --unmask
codeberg.org: a18099ca69064be387fbe37b8ad1d333758361f6 (source: FORGEJO_TOKEN)"###
),
example(
r###"mise token forgejo forgejo.mycompany.com
forgejo.mycompany.com: (none)"###
)
)]
pub(super) struct Forgejo {
#[usage(default = "codeberg.org")]
host: String,
#[usage(long)]
unmask: bool,
}
impl Forgejo {
pub(super) fn run(self) -> eyre::Result<()> {
match forgejo::resolve_token(&self.host) {
Some((token, source)) => {
let display_token = if self.unmask {
token
} else {
tokens::mask_token(&token)
};
miseprintln!("{}: {} (source: {})", self.host, display_token, source);
}
None => {
miseprintln!("{}: (none)", self.host);
}
}
Ok(())
}
}