github.com/ddfisher/etcdctl@v0.1.2-0.20130925194301-eab7435d452d/command.go (about)

     1  package main
     2  
     3  import (
     4  	"errors"
     5  )
     6  
     7  type Command struct {
     8  	usage   string
     9  	minArgs int
    10  	maxArgs int
    11  	f       func(args []string) error
    12  }
    13  
    14  var commands = make(map[string]*Command)
    15  
    16  func registerCommand(name string, usage string, minArgs int, maxArgs int, f func(args []string) error) error {
    17  	_, ok := commands[name]
    18  	if ok {
    19  		return errors.New("duplicate command name")
    20  	}
    21  
    22  	commands[name] = &Command{
    23  		usage:   usage,
    24  		minArgs: minArgs,
    25  		maxArgs: maxArgs,
    26  		f:       f,
    27  	}
    28  	return nil
    29  }