node package manager

terminal-menu-programs

Terminal menu programs, using retro ansi terminal menus for serious 80s technicolor business.

Who likes install scripts with runtime flags? Really? Guess who doesn't: everyone else (rounded up).

This is a simple bit of polish on top of the terminal-menu package that gives you a structured terminal program with navigable menus, and togglable checkbox options. Things can happen when you enter or exit menus, things can happen when you toggle a checkbox option, and things can happen when you save or cancel an entire menu of checkbox options.

Have a look at the test.js file to see how it all works, but it's pretty much "create a program", "create named menus", "add options for transitioning to other menus, possibly with callbacks" and "create checkbox options, possibly with callbacks on toggles". That's it.

Because part of the beauty of a retro ansi terminal menu program for serious 80s technicolor business is that you don't need a lot to do a lot.

super basic minimal example

// preamble
var builder = require("terminal-menu-program"),
    program = new builder.Program("Test program"),
 
// single screen definition
menu = program.addMenu("main");
menu.addText("A Terminal Menu Program");
menu.addSpacer();
menu.addOption("menu switch (going to this screen when selected)", "main");
menu.addSpacer();
menu.addCheckedOption("a toggle option", function(state) { /* ... */ });
menu.addSpacer();
menu.setCancel("exit");
 
// run single screen program
program.run("main");

What's the license?

Public Domain; in jurisdictions that do not recognise the public domain, MIT.