Skip to content

Latest commit

Β 

History

History
53 lines (46 loc) Β· 2.06 KB

TODO.md

File metadata and controls

53 lines (46 loc) Β· 2.06 KB

TODO

  • 🟑 Github CI

  • 🟑 exit code: 0 = success, else error code

  • 🟑 STDOUT/STDERR distinction

  • 🟑 check options/argument names for uniqueness

  • 🟑 error on unknown options

  • 🟑 simple commands: just a closure with all args + remaining args as param

  • 🟣 Types

    • 🟑 enum
    • 🟑 STDIN/File
  • 🟣 Validations

    • 🟑 format, greater/less, closure, error messages
    • 🟑 command validation (validate all parameters together)
  • 🟣 automatic command documentation

    • 🟑 --help,
    • 🟑 search
    • 🟑 html reference
    • 🟑 interactive documentation
  • 🟑 interactive mode: instead of passing parameters, you get a prompt with options

  • 🟑 automatic bash auto completion (maybe use interactive mode instead because bash completions suck)

  • 🟑 logging

  • 🟑 dry-run

  • πŸŸ‘β“ undo

  • πŸŸ‘β“ include rake-like features too? e.g. dependencies

  • 🟑 error handler, global/per-namespace/per-command

  • 🟑 ability to pass parameters as JSON

  • 🟑 reusable/embeddable components. e.g. include the same set of commands in multiple places but with different settings.

  • 🟑 add features that other tools dont have and that are "new" to the terminal? interactive options?

  • 🟑 pre-commit hook to scan project for "XXX" comments

  • 🟣 Library:

    • 🟑 building/releasing crystal shards, check that version does not exist yet, check that version is new, git helpers, ...
    • 🟑 progress bar, spinner, notifications, colors, input/confirm, fileutils, file permissions, ...

DONE

  • 🟒 inspectable model: list commands in namespace, list options of command

  • 🟒 raise on unexpected extra arguments

  • 🟒 raise on short option duplicates

  • 🟒 short and long versions

  • 🟒 arguments and options

  • 🟒 namespaces/subcommands

  • 🟒 can be invoked without CLI by calling functions => easy to test

  • 🟒 automatically convert parameters and validate them (int, inclusion in list, ...)

  • πŸ†πŸ””πŸš¨πŸ›‘πŸ“ŒπŸ“πŸ“‚β—β“πŸš©πŸ’¬πŸ§ 

  • β­βœ…βŒβŽπŸ”²β›”πŸš«β˜‘οΈ

  • πŸ”΄πŸŸ πŸŸ‘πŸŸ’πŸ”΅πŸŸ£πŸŸ€βš«βšͺ

  • πŸ”’πŸ”πŸ”‘πŸ›‘

  • πŸ› πŸ”§πŸ’πŸͺ²βš‘πŸ’₯πŸ”₯🩸🩹πŸͺ¦