March 8, 2016
An interactive console application that you can manage/run alias commands that are used frequently.
golang jroimartin/gocui wip side project

Word Count: 301

The goal of the project was to provide an interactive console application that you could have an alias to commands that you would frequently use. It is still a WIP but currently development is inactive.

The insanity

For example, say you had the following steps that you performed in various orders:

  • Clean workspace
  • Compile workspace but skip tests
  • Compile workspace but run skip tests
  • Compile workspace but skip Y
  • Compile workspace but skip X
  • Compile workspace but skip X and Y
  • Deploy workspace
  • Start workspace
  • Stop workspace
  • Undeploy workspace

When doing one of the above steps, you could pick clean, compile, deploy, compile (if deploy failed), deploy, start. Now, imagine that the “compile workspace” was the same command but it varied on arguments (which is why so many variations). To remember or type all of those variations, is a waste of time. It should be scripted.

Enter dcui.

image

The idea is that you have commands preconfigured for various typically used scenarios grouped into menus. Then in order to execute a command, you could quickly type “1 1 1” (three ones in a row), to navigate to the first menu, then first menu, and first item. If the a selected item is a menu, it opens the menu but if it is a command (think leaf node), then it will attempt to exec it. The output would be streamed to the bottom pane. Once the command is finished, the focus is back on the most recent menu.

The current implementation specs:

Future features:

  • Dynamically add commands/menus from inside app
  • Automatically update the config file as commands/menus are added.
  • Run an entire menu as a “sequence/group” of commands.
  • Be able to run commands in parallel.
  • Redesign layout of nested/stacked menus