Skip to content

Conversation

@aryanjassal
Copy link
Owner

@aryanjassal aryanjassal commented Jul 20, 2025

Description

The CLI argparser was written as something which 'gets the job done'. While this was fine for the project with a strict deadline, I want to improve the code to a sufficiently high level. This is the first step in doing so: updating how the command line interface actually works.

Closes #14

Tasks

This PR has the following actionable items

  • Update the structure of the code to build a static command tree
    • Make it trivial to visualise the tree and add new data to it
    • Add utilities to simplify leaf commands and group commands
  • Add proper flag support
    • Automatically construct help text with the deepest parsed layer
  • Walk the tree to validate the command and arguments
    • Additional flags and arguments should be passed to the handler
  • Add flag aliases

@aryanjassal aryanjassal self-assigned this Jul 20, 2025
@aryanjassal
Copy link
Owner Author

It would be cool if I got CI working. Automatically perform linting, building, and invoking help text. I cannot properly test this as I need to write and update the testing library myself, and that is a little lower on the priority list right now.

@aryanjassal
Copy link
Owner Author

XOR encryption is a candidate for removal, as AES is much better in every aspect, basically. I will need to check for its uses before going ahead with the removal.

@aryanjassal
Copy link
Owner Author

Everything for this PR should be done now. The CLI UX has been completely revamped to aid both developers and users alike. Merging as completed.

@aryanjassal aryanjassal merged commit 057fabe into main Jul 28, 2025
2 checks passed
@aryanjassal aryanjassal deleted the feature-cli-argparse branch July 28, 2025 12:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Refine argument parsing

2 participants