{"repo":"desertbit/grumble","free":true,"listed":false,"github":"https://github.com/desertbit/grumble","clone":"git clone https://github.com/desertbit/grumble.git","description":"A powerful modern CLI and SHELL","language":"Go","stars":550,"topics":["golang","shell","cli","flags"],"license":"MIT","category":"cli-tools","readme_excerpt":"Grumble - A powerful modern CLI and SHELL There are a handful of powerful go CLI libraries available (spf13/cobra, urfave/cli). However sometimes an integrated shell interface is a great and useful extension for the actual application. This library offers a simple API to create powerful CLI applications and automatically starts an integrated interactive shell , if the application is started without any command arguments. Hint: We do not guarantee 100% backwards compatiblity between minor versions (1.x). However, the API is mostly stable and should not change much. Introduction Create a grumble APP. Register a top-level command. Note: Sub commands are also supported... Run the application. Or use the builtin grumble.Main function to handle errors automatically. Shell Multiline Input Builtin support for multiple lines. Flags You can pass flags in two ways: cmd --flag value or cmd --flag=value There are some exceptions/additions to this: - bool: cmd --boolflag offer a third option that does not require a value - string: cmd --stringflag=\"some test string\" leads to value some test string , as double quotes are stripped from the value Separate flags and args specifically If you need to pass a flag-like value as positional argument, you can do so by using a double dash: command --flag1=something -- --myPositionalArg Remote shell access with readline By calling RunWithReadline() rather than Run() you can pass instance of readline.Instance. One of interesting usages is having a possi","default_branch":null,"files":null,"tree":[],"storefront":"/r/desertbit","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/desertbit/grumble/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}