Files
2026-05-10 18:55:21 -05:00

1020 B

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