Dinogo is an CLI framework for build shell, terminal and command line applications in Go.
- Cross Platform
- Fast and efficient
- Keyboard API
- Enable/Disable Windows Virtual Terminal Processing
- Input infrastructure (custom actions, key combos...)
- Input profiles (classic, password...)
- Drawing tools
- Shell infrastructure
- Default actions (help, clear, exit...) for your shell
- Command history infrastructure
- Auto command complete support for your shell
- ANSI escape codes and parser
- CLI functions (move left, move right, clear screen...)
- By default supports cursor move on input via command line
package main
import (
"github.com/mertcandav/dinogo/shell"
"github.com/mertcandav/dinogo/shell/actions"
)
func about(_ shell.CommandActionInfo) {
println("This shell is example for Dinogo framework.")
}
func main() {
sh := shell.Init()
sh.Commands = []shell.Command{
{Name: "clear", Help: "Clear entire screen.", Action: actions.Clear},
{Name: "about", Help: "Show about this shell.", Action: about},
{Name: "history", Help: "List command history.", Action: actions.History},
{Name: "help", Help: "Show help.", Action: actions.Help},
{Name: "exit", Help: "Exit shell.", Action: actions.Exit},
}
sh.Loop()
}
ansiescape/
ANSI escape code constants and parser.drawing/
Drawing tools.input/
Input infrastructure for command line inputs.keyboard/
Keyboard API.message/
Message templates for print.shell/
Shell infrastructure.terminal/
CLI functions and tools.
The Dinogo project use issues for only bug reports and proposals.
To contribute, please read the contribution guidelines from here.
All contributions to Dinogo, no matter how small or large, are welcome.
From a simple typo correction to a contribution to the code, all contributions are welcome and appreciated.
Dinogo is distributed under the terms of the MIT license.
See license details.