Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR cleans up the
Command
classes in the CLI, introducing aDatabaseCommand
class for the commands operating on a database,and a
getCommandLineParser
command to centralize the argumentsparsing and validation.
The opening of the database based on the CLI arguments and options
is now centralized in
DatabaseCommand.execute
, making it easy toadd new database opening features (like YubiKey support for the CLI).
Also a couple of bugs fixed:
Create
was still usingstdout
for some error messages.Diceware
andGenerate
were not validating that the word count was an integer.Diceware
was also usingstdout
for some error messages.@droidmonkey let me know what you think! I believe with this PR merged, adding new commands or new database opening features will be faster and safer.
@phoerious can you take a look at how I'm using the
QSharedPointer
for theQCommandLineParser
?? It's my first time using anything other than "vanilla" pointers.Type of change
Testing strategy
Checklist:
-DWITH_ASAN=ON
. [REQUIRED]