Coder Social home page Coder Social logo

phlummox-mirrors / getopt Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 17 KB

A POSIX-compatible getopt implementation for Go. cloned from https://git.sr.ht/~sircmpwn/getopt

License: BSD 3-Clause "New" or "Revised" License

Go 100.00%
argument-parser command-line command-line-parser

getopt's Introduction

getopt godoc builds.sr.ht status

A POSIX-compatible getopt implementation for Go, because POSIX getopt is The Correct Way to interpret arguments to command line utilities.

Please send patches/bugs/feedback to ~sircmpwn/[email protected].

Example Usage

import (
	"os"
	"git.sr.ht/~sircmpwn/getopt"
)

func main() {
	opts, optind, err := getopt.Getopts(os.Args, "abc:d:")
	if err != nil {
		panic(err)
	}
	for _, opt := range opts {
		switch opt.Option {
		case 'a':
			println("Option -a specified")
		case 'b':
			println("Option -b specified")
		case 'c':
			println("Option -c specified: " + opt.Value)
		case 'd':
			println("Option -d specified: " + opt.Value)
		}
	}
	println("Remaining arguments:")
	for _, arg := range os.Args[optind:] {
		println(arg)
	}
}

A flag-like interface is also supported.

import (
	"git.sr.ht/~sircmpwn/getopt"
)

func main() {
	a := getopt.Bool("a", false, "turn on option a")
	b := getopt.Int("b", 1, "set b to a numerical value")
	var opt string
	getopt.StringVar(&opt, "c", "", "let c be specified string")

	err := getopt.Parse()
	if err != nil {
		panic(err)
	}

	print("Value of a: ")
	println(*a)
	print("Value of b: ")
	println(*b)
	println("Value of c: " + opt)

	println("Remaining arguments:")
	for _, arg := range getopt.Args() {
		println(arg)
	}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.