Add basic CLI commands #1847

Closed
opened 2025-10-09 17:32:51 +03:00 by OVERLORD · 10 comments
Owner

Originally created by @xoxys on GitHub.

It could be handy to have some basic CLI options for the bitwarden_rs binary in place. Minimum set could be something like bitwarden_rs --help and bitwarden_rs --version.

These CLI options can also be used to verify if the compiled binary is executable.

Originally created by @xoxys on GitHub. It could be handy to have some basic CLI options for the `bitwarden_rs` binary in place. Minimum set could be something like `bitwarden_rs --help` and `bitwarden_rs --version`. These CLI options can also be used to verify if the compiled binary is executable.
OVERLORD added the good first issue label 2025-10-09 17:32:51 +03:00
Author
Owner

@tinywombat765 commented on GitHub:

I'd like to take this

@tinywombat765 commented on GitHub: I'd like to take this
Author
Owner

@tinywombat765 commented on GitHub:

In that case I'd like to use structopt, which is built on top of clap but provides a nicer api imo

@tinywombat765 commented on GitHub: In that case I'd like to use structopt, which is built on top of clap but provides a nicer api imo
Author
Owner

@tinywombat765 commented on GitHub:

@dani-garcia Do you have a preference as for as cli argument parsing is concerned?

@tinywombat765 commented on GitHub: @dani-garcia Do you have a preference as for as cli argument parsing is concerned?
Author
Owner

@dani-garcia commented on GitHub:

Sure thing, have at it! If you need help I'm usually either here or the Matrix chat.

@dani-garcia commented on GitHub: Sure thing, have at it! If you need help I'm usually either here or the Matrix chat.
Author
Owner

@dani-garcia commented on GitHub:

Do you mean choice of library? If nothing has changed, clap is the most popular so I'd go that way.

https://github.com/clap-rs/clap

@dani-garcia commented on GitHub: Do you mean choice of library? If nothing has changed, clap is the most popular so I'd go that way. https://github.com/clap-rs/clap
Author
Owner

@dani-garcia commented on GitHub:

Ah, I thought the structopt api was merged into clap too, but apparently that's scheduled to be released on the next version of clap 3.0!

I agree the declarative api of structopt is nicer, I'd prefer to use that too.

@dani-garcia commented on GitHub: Ah, I thought the structopt api was merged into clap too, but apparently that's scheduled to be released on the next version of clap 3.0! I agree the declarative api of structopt is nicer, I'd prefer to use that too.
Author
Owner

@tinywombat765 commented on GitHub:

I see that if the GIT_VERSION environment var is set at compile time the app with print that as it's version. Should I use that for the version flag? If so what should it print if anything it that var is not set? And if not what should I print?

@tinywombat765 commented on GitHub: I see that if the GIT_VERSION environment var is set at compile time the app with print that as it's version. Should I use that for the version flag? If so what should it print if anything it that var is not set? And if not what should I print?
Author
Owner

@dani-garcia commented on GitHub:

For the version flag I'd just print bitwarden_rs followed by a space and the GIT_VERSION value if present. Similar to how cargo --version or rustc --version do it.

If no version is provided, you could print something like.

bitwarden_rs (Version info from Git not present)
@dani-garcia commented on GitHub: For the version flag I'd just print `bitwarden_rs` followed by a space and the GIT_VERSION value if present. Similar to how cargo --version or rustc --version do it. If no version is provided, you could print something like. ``` bitwarden_rs (Version info from Git not present) ```
Author
Owner

@dani-garcia commented on GitHub:

Closed because #888 got merged

@dani-garcia commented on GitHub: Closed because #888 got merged
Author
Owner

@tinywombat765 commented on GitHub:

I opened a PR #888

@tinywombat765 commented on GitHub: I opened a PR #888
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/vaultwarden#1847