All Projects → corona10 → Fuego

corona10 / Fuego

Licence: bsd-3-clause
fuego is a library for automatically generating command line interfaces (CLIs) from function and struct.

Programming Languages

python
139335 projects - #7 most used programming language
go
31211 projects - #10 most used programming language
golang
3204 projects

Labels

Projects that are alternatives of or similar to Fuego

Drive Cli
A command line interface for accessing google drive
Stars: ✭ 449 (+1113.51%)
Mutual labels:  cli, google
Trino
Trino: Master your translations with command line!
Stars: ✭ 118 (+218.92%)
Mutual labels:  cli, google
Gkeep
Google Keep Command Line Interface (CLI)
Stars: ✭ 114 (+208.11%)
Mutual labels:  cli, google
Sitemap Generator Cli
Creates an XML-Sitemap by crawling a given site.
Stars: ✭ 214 (+478.38%)
Mutual labels:  cli, google
Gcal Cli
Google Calendar command line tool for Node.js
Stars: ✭ 255 (+589.19%)
Mutual labels:  cli, google
Search Engine Parser
Lightweight package to query popular search engines and scrape for result titles, links and descriptions
Stars: ✭ 216 (+483.78%)
Mutual labels:  cli, google
Youtubeshop
Youtube autolike and autosubs script
Stars: ✭ 177 (+378.38%)
Mutual labels:  cli, google
Aws Google Auth
Provides AWS STS credentials based on Google Apps SAML SSO auth (what a jumble!)
Stars: ✭ 428 (+1056.76%)
Mutual labels:  cli, google
Pagespeed Score
DEPRECATED - use GoogleChrome/lighthouse-ci instead
Stars: ✭ 18 (-51.35%)
Mutual labels:  cli, google
Cbrcli
Command line interface to Carbon Black Response
Stars: ✭ 35 (-5.41%)
Mutual labels:  cli
Composify
Turn WordPress plugin zip files into git repositories, so that composer version constraints work properly.
Stars: ✭ 36 (-2.7%)
Mutual labels:  cli
Odrive
Google Drive GUI for Windows / Mac / Linux
Stars: ✭ 978 (+2543.24%)
Mutual labels:  google
Planet Gee Pipeline Cli
Planet and Google Earth Engine Pipeline Command Line Interface Tool
Stars: ✭ 35 (-5.41%)
Mutual labels:  cli
Googlemapview
android google map view - imageView to make the map display process easier by entering latitude and longitude only by static map
Stars: ✭ 36 (-2.7%)
Mutual labels:  google
Gitviper
Enhanced git experience using the command line
Stars: ✭ 35 (-5.41%)
Mutual labels:  cli
Gomodctl
Search, Check, and Update Go modules.
Stars: ✭ 37 (+0%)
Mutual labels:  cli
Nativescript Cli
Command-line interface for building NativeScript apps
Stars: ✭ 977 (+2540.54%)
Mutual labels:  cli
Wonders
🌈 Declarative JavaScript framework to build command-line applications.
Stars: ✭ 34 (-8.11%)
Mutual labels:  cli
Cli
GraphQL back-end framework with first-class Typescript support
Stars: ✭ 37 (+0%)
Mutual labels:  cli
Mythra
Music retrieval CLI and API using rust
Stars: ✭ 37 (+0%)
Mutual labels:  cli

Build Status GoDoc Go Report Card Coverage Status License

fuego

Inspired by Google python-fire

fuego is a library for automatically generating command line interfaces (CLIs) from function and struct.

Features

  • fuego is a simple way to create a CLI in Go.
  • fuego helps with exploring existing code or turning other people's code into a CLI. [1]
  • fuego shows documentation of each method or functions for help.

Installation

go get github.com/corona10/fuego

TODO

  • Support flag options
  • More error handling
  • Support more types

asciicast

Examples

package main

import (
	"fmt"

	"github.com/corona10/fuego"
)

func Add(a int, b int) (int, int) {
	fmt.Println(a, b)
	return a + b, 2*a + b
}

func main() {
	fuego.Fire(Add)
}
package main

import (
	"fmt"

	"github.com/corona10/fuego"
)

type Sample struct {
	Name string
}

func (s Sample) Add(a, b int) int {
	return a + b
}

func (s Sample) Minus(a, b int) int {
	return a - b
}

func (s Sample) HelloWorld() {
	fmt.Println(s.Name)
	fmt.Println("Hello world!")
}

func main() {
	var s Sample
	s.Name = "test"
	fuego.Fire(s)
}

Special thanks to

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].