Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Overhaul the CLI parsing system #39

Open
grunt-lucas opened this issue Apr 6, 2024 · 0 comments
Open

Overhaul the CLI parsing system #39

grunt-lucas opened this issue Apr 6, 2024 · 0 comments
Assignees
Labels
refactoring Code cleanup that doesn't significantly alter functionality

Comments

@grunt-lucas
Copy link
Owner

grunt-lucas commented Apr 6, 2024

Refactor CLI parsing, it's a mess. We have a ticket here to refactor the project so there is a clearer client/library distinction, which would help this effort: #40

Look into the most well-supported C++ options parsing libraries. Porytiles currently uses the GNU getopt.h, which is certainly capable. But there may be more C++ friendly solutions out there that well help clean up the code.

Alternative Options

Take advantage of Python's C/C++ interop: https://docs.python-guide.org/scenarios/clibs/ We could keep most of the Porytiles codebase intact while also getting all the cool Python CLI handling stuff for free.

Alternatively, we could create Go frontend for the CLI and leverage the capable Cobra library. Would need to look into Go/C and Go/C++ interop.

@grunt-lucas grunt-lucas added the meta Repository housekeeping label Apr 6, 2024
@grunt-lucas grunt-lucas self-assigned this Apr 6, 2024
@grunt-lucas grunt-lucas added refactoring Code cleanup that doesn't significantly alter functionality and removed meta Repository housekeeping labels Apr 6, 2024
@grunt-lucas grunt-lucas added this to the 2.0.0 Refactor Effort milestone Sep 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
refactoring Code cleanup that doesn't significantly alter functionality
Projects
None yet
Development

No branches or pull requests

1 participant