Product Promotion
0x5a.live
for different kinds of informations and explorations.
GitHub - c-bata/go-prompt: Building powerful interactive prompts in Go, inspired by python-prompt-toolkit.
Building powerful interactive prompts in Go, inspired by python-prompt-toolkit. - c-bata/go-prompt
Visit SiteGitHub - c-bata/go-prompt: Building powerful interactive prompts in Go, inspired by python-prompt-toolkit.
Building powerful interactive prompts in Go, inspired by python-prompt-toolkit. - c-bata/go-prompt
Powered by 0x5a.live ๐
go-prompt
A library for building powerful interactive prompts inspired by python-prompt-toolkit, making it easier to build cross-platform command line tools using Go.
package main
import (
"fmt"
"github.com/c-bata/go-prompt"
)
func completer(d prompt.Document) []prompt.Suggest {
s := []prompt.Suggest{
{Text: "users", Description: "Store the username and age"},
{Text: "articles", Description: "Store the article text posted by user"},
{Text: "comments", Description: "Store the text commented to articles"},
}
return prompt.FilterHasPrefix(s, d.GetWordBeforeCursor(), true)
}
func main() {
fmt.Println("Please select table.")
t := prompt.Input("> ", completer)
fmt.Println("You selected " + t)
}
Projects using go-prompt
- c-bata/kube-prompt : An interactive kubernetes client featuring auto-complete written in Go.
- rancher/cli : The Rancher Command Line Interface (CLI)is a unified tool to manage your Rancher server
- kubicorn/kubicorn : Simple, cloud native infrastructure for Kubernetes.
- cch123/asm-cli : Interactive shell of assembly language(X86/X64) based on unicorn and rasm2
- ktr0731/evans : more expressive universal gRPC client
- CrushedPixel/moshpit: A Command-line tool for datamoshing.
- last-ent/testy-go: Testy Go: A tool for easy testing!
- tiagorlampert/CHAOS: a PoC that allow generate payloads and control remote operating systems.
- abs-lang/abs: ABS is a scripting language that works best on terminal. It tries to combine the elegance of languages such as Python, or Ruby, to the convenience of Bash.
- takashabe/btcli: btcli is a CLI client for the Bigtable. Has many read options and auto-completion.
- ysn2233/kafka-prompt: An interactive kafka-prompt(kafka-shell) built on existing kafka command client
- fishi0x01/vsh: HashiCorp Vault interactive shell
- mstrYoda/docker-shell: A simple interactive prompt for docker
- c-bata/gh-prompt: An interactive GitHub CLI featuring auto-complete.
- docker-slim/docker-slim: Don't change anything in your Docker container image and minify it by up to 30x (and for compiled languages even more) making it secure too! (free and open source)
- rueyaa332266/ezcron: Ezcron is a CLI tool, helping you deal with cron expression easier.
- qingstor/qsctl: Advanced command line tool for QingStor Object Storage.
- segmentio/topicctl: Tool for declarative management of Kafka topics
- chriswalz/bit: Bit is a modern Git CLI
- (If you create a CLI utility using go-prompt and want your own project to be listed here, please submit a GitHub issue.)
Features
Powerful auto-completion
(This is a GIF animation of kube-prompt.)
Flexible options
go-prompt provides many options. Please check option section of GoDoc for more details.
Keyboard Shortcuts
Emacs-like keyboard shortcuts are available by default (these also are the default shortcuts in Bash shell). You can customize and expand these shortcuts.
Key Binding | Description |
---|---|
Ctrl + A | Go to the beginning of the line (Home) |
Ctrl + E | Go to the end of the line (End) |
Ctrl + P | Previous command (Up arrow) |
Ctrl + N | Next command (Down arrow) |
Ctrl + F | Forward one character |
Ctrl + B | Backward one character |
Ctrl + D | Delete character under the cursor |
Ctrl + H | Delete character before the cursor (Backspace) |
Ctrl + W | Cut the word before the cursor to the clipboard |
Ctrl + K | Cut the line after the cursor to the clipboard |
Ctrl + U | Cut the line before the cursor to the clipboard |
Ctrl + L | Clear the screen |
History
You can use Up arrow and Down arrow to walk through the history of commands executed.
Multiple platform support
We have confirmed go-prompt works fine in the following terminals:
- iTerm2 (macOS)
- Terminal.app (macOS)
- Command Prompt (Windows)
- gnome-terminal (Ubuntu)
Links
Author
Masashi Shibata
License
This software is licensed under the MIT license, see LICENSE for more information.
GoLang Resources
are all listed below.
Made with โค๏ธ
to provide different kinds of informations and resources.