phase 5
This commit is contained in:
@@ -0,0 +1,21 @@
|
||||
# Phase 1
|
||||
|
||||
Write code that uses `clap` to parse the command line arguments and create a `DrawerOperation` struct from them. The
|
||||
`DrawerOperation` struct will contain:
|
||||
|
||||
- An `operation_type` (`OperationType`, enum of `Open` or `Close`)
|
||||
- A `drawer_file` (`Path` for the drawer file to open or close)
|
||||
- A `key_path` (`Path` to the key we'll use, which is either the value of the `-i` flag or the value of the `$DRAWER_KEY`
|
||||
env var)
|
||||
- A `target_path` (`Path` to the contents we're going to put into or take out of the drawer)
|
||||
- A `force` (bool for whether or not `-f` was passed)
|
||||
|
||||
In order for this to be testable, it needs to be a function that returns a `Result<DrawerOperation, DrawerError>`. The
|
||||
main function should call that and then do nothing with the result.
|
||||
|
||||
Certain things should cause the function to return `Err`:
|
||||
|
||||
- Not passing a drawer file
|
||||
- Passing a subcommand other than `open` or `close`
|
||||
- Passing any flags but `-f` or `-i`
|
||||
- Not passing `-i` when the `$DRAWER_KEY` environment variable is undefined
|
||||
Reference in New Issue
Block a user