Tags: gnostr-org/gnostr
Tags
test_utils
intermediate-main-Init-List-faux-commands
intermediate-main-Init-List-faux-commands
intermediate-cargo-test-mostly-pass
intermediate-cargo-test-mostly-pass
use git2@v0.18.3
diff --git a/crates/ngit/src/lib.rs b/crates/ngit/src/lib.rs new file mode 100644 index 0000000..326dc79 --- /dev/null +++ b/crates/ngit/src/lib.rs @@ -0,0 +1,60 @@ +#![cfg_attr(not(test), warn(clippy::pedantic))] +#![cfg_attr(not(test), warn(clippy::expect_used))] + +use anyhow::Result; +use clap::{Parser, Subcommand}; + +mod cli_interactor; +mod client; +mod config; +mod git; +mod key_handling; +mod login; +mod repo_ref; +mod sub_commands; + +#[derive(Parser)] +#[command(author, version, about, long_about = None)] +#[command(propagate_version = true)] +pub struct Cli { + #[command(subcommand)] + command: Commands, + /// nsec or hex private key + #[arg(short, long, global = true)] + nsec: Option<String>, + /// password to decrypt nsec + #[arg(short, long, global = true)] + password: Option<String>, + /// disable spinner animations + #[arg(long, action)] + disable_cli_spinners: bool, +} + +#[derive(Subcommand)] +enum Commands { + /// signal you are this repo's maintainer accepting proposals via nostr + Init(sub_commands::init::SubCommandArgs), + /// issue commits as a proposal + Send(sub_commands::send::SubCommandArgs), + /// list proposals; checkout, apply or download selected + List, + /// send proposal revision + Push(sub_commands::push::SubCommandArgs), + /// fetch and apply new proposal commits / revisions linked to branch + Pull, + /// run with --nsec flag to change npub + Login(sub_commands::login::SubCommandArgs), +} + +// #[tokio::main] +// async fn main() -> Result<()> { +// let cli = Cli::parse(); +// match &cli.command { +// Commands::Login(args) => sub_commands::login::launch(&cli, args).await, +// Commands::Init(args) => sub_commands::init::launch(&cli, args).await, +// Commands::Send(args) => sub_commands::send::launch(&cli, args).await, +// Commands::List => sub_commands::list::launch().await, +// Commands::Pull => sub_commands::pull::launch().await, +// Commands::Push(args) => sub_commands::push::launch(&cli, args).await, +// } +// }
diff --git a/crates/ngit/src/lib.rs b/crates/ngit/src/lib.rs new file mode 100644 index 0000000..326dc79 --- /dev/null +++ b/crates/ngit/src/lib.rs @@ -0,0 +1,60 @@ +#![cfg_attr(not(test), warn(clippy::pedantic))] +#![cfg_attr(not(test), warn(clippy::expect_used))] + +use anyhow::Result; +use clap::{Parser, Subcommand}; + +mod cli_interactor; +mod client; +mod config; +mod git; +mod key_handling; +mod login; +mod repo_ref; +mod sub_commands; + +#[derive(Parser)] +#[command(author, version, about, long_about = None)] +#[command(propagate_version = true)] +pub struct Cli { + #[command(subcommand)] + command: Commands, + /// nsec or hex private key + #[arg(short, long, global = true)] + nsec: Option<String>, + /// password to decrypt nsec + #[arg(short, long, global = true)] + password: Option<String>, + /// disable spinner animations + #[arg(long, action)] + disable_cli_spinners: bool, +} + +#[derive(Subcommand)] +enum Commands { + /// signal you are this repo's maintainer accepting proposals via nostr + Init(sub_commands::init::SubCommandArgs), + /// issue commits as a proposal + Send(sub_commands::send::SubCommandArgs), + /// list proposals; checkout, apply or download selected + List, + /// send proposal revision + Push(sub_commands::push::SubCommandArgs), + /// fetch and apply new proposal commits / revisions linked to branch + Pull, + /// run with --nsec flag to change npub + Login(sub_commands::login::SubCommandArgs), +} + +// #[tokio::main] +// async fn main() -> Result<()> { +// let cli = Cli::parse(); +// match &cli.command { +// Commands::Login(args) => sub_commands::login::launch(&cli, args).await, +// Commands::Init(args) => sub_commands::init::launch(&cli, args).await, +// Commands::Send(args) => sub_commands::send::launch(&cli, args).await, +// Commands::List => sub_commands::list::launch().await, +// Commands::Pull => sub_commands::pull::launch().await, +// Commands::Push(args) => sub_commands::push::launch(&cli, args).await, +// } +// }
PreviousNext