blob: 81b610183725edfa83d1de1f0fe84b7c4582ee0d [file] [log] [blame]
package core
import (
"flag"
"fmt"
"veyron.io/veyron/veyron2/ipc"
"veyron.io/veyron/veyron/lib/flags"
)
func parseListenFlags(args []string) (*flags.Flags, []string, error) {
fs := flag.NewFlagSet("modules/core", flag.ContinueOnError)
fl := flags.CreateAndRegister(fs, flags.Listen)
if len(args) == 0 {
return fl, []string{}, nil
}
err := fl.Parse(args[1:])
return fl, fl.Args(), err
}
func initListenSpec(fl *flags.Flags) ipc.ListenSpec {
lf := fl.ListenFlags()
return ipc.ListenSpec{
Protocol: lf.ListenProtocol.String(),
Address: lf.ListenAddress.String(),
Proxy: lf.ListenProxy,
}
}
// checkArgs checks for the expected number of args in args. A -ve
// value means at least that number of args are expected.
func checkArgs(args []string, expected int, usage string) error {
got := len(args)
if expected < 0 {
expected = -expected
if got < expected {
return fmt.Errorf("wrong # args (got %d, expected >=%d) expected: %q got: %v", got, expected, usage, args)
}
} else {
if got != expected {
return fmt.Errorf("wrong # args (got %d, expected %d) expected: %q got: %v", got, expected, usage, args)
}
}
return nil
}