KiloProjects / kncli

Kilonova CLI
GNU General Public License v3.0
4 stars 0 forks source link

Design the CLI UX #1

Open overanalytcl opened 2 weeks ago

overanalytcl commented 2 weeks ago

Description

This issue is dedicated to tracking the process of designing the command line user experience.

Tasks

This issue will obviously change, it's mostly a discussion. Feedback welcome.

rsdobre commented 2 weeks ago

I think we can take some inspiration from the way git structures its commands. For example we could let users set a default email address kncli config user.email example@mail.com, so they don't need to input it for every auth. We'd store these in a .kncliconfig file. This would also apply for setting the default submission language, display language of problem statements, ect.

Regarding problem submissions, I'd imagine the command would look something like kncli problem submit solution.cpp --id 9999. That would get old pretty quick, so we should allow users to set a problem they are currently working on kncli problem --id 9999 and let them execute other commands without specifying the problem id (kncli submit solution.cpp, kncli statement).

In the future we could also look at auto running the example test cases locally, since most people don't like blindly submitting without at least checking the examples.

Auth and problem submissions are clearly the no. 1 priority, they will probably be the most used and as soon as we get those ready people can start using kncli