Skip to content

Rewrite the CLI #17

@ryugi

Description

@ryugi

Use https://github.com/clojure/tools.cli and the docstring extraction functions in https://github.com/clojusc/trifl.

Tasks (each of these should get their own ticket):

  • provide detailed examples of ideal usage from the cli
    • for use by developers
    • for use by scripts/automation tools - will update in the future, as needed
    • for use by build matrices that need scripts to respect ENV variables - will update in the future, as needed
  • find a good taxonomy for the anticipated full command set
  • re-org the cli namespaces accordingly
  • create new functions for tasks
    • config
    • config show
    • config help
    • db
    • db help
    • db init
    • db dump
    • projects list
    • project
    • project help
    • project create
    • tasks list
    • tasks list
    • task
    • task help
    • task create
  • move help into new functions' docstrings
  • update main/entrypoint function to work with clojure.tools.cli
  • add dispatcher(s) for subcommands
  • provide a bash auto-complete script
  • update and/or remove the project.clj file aliases
  • create a cli server that runs in the background and listens for commands
    • rewrite using UDP sockets (inet-address and sockets libs)
    • remove TCP server and dependencies
  • create a lifecycle component for the cli server so it's brought up with the other components when the system starts
  • create a cli client that starts up fast (cljs wrapping node, probably), has access to the file system, and can open tcp connections
    • rewrite the client to communicate with the new UDP server

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions