Пример #1
0
// registerHandlers registers all the provided handlers with minicli, panicking
// if any of the handlers fail to register.
func registerHandlers(name string, handlers []minicli.Handler) {
	for i := range handlers {
		err := minicli.Register(&handlers[i])
		if err != nil {
			log.Fatal("invalid handler, %s:%d -- %v", name, i, err)
		}
	}
}
Пример #2
0
func init() {
	minicli.Register(&minicli.Handler{
		Patterns: []string{
			"log level <fatal,error,warn,info,debug>",
		},
		Call: handleLog,
	})
}
Пример #3
0
func init() {
	minicli.Register(&minicli.Handler{
		Patterns: []string{
			"ip <add,> <index> <ip>",
			"ip <flush,>",
		},
		Call: handleIP,
	})
	go interfaceStats()
}
Пример #4
0
func main() {
	flag.Parse()

	logSetup()

	// register CLI handlers
	for i := range cliHandlers {
		err := minicli.Register(&cliHandlers[i])
		if err != nil {
			log.Fatal("invalid handler, `%v` -- %v", cliHandlers[i].HelpShort, err)
		}
	}

	var err error
	hostname, err = os.Hostname()
	if err != nil {
		log.Fatal("unable to get hostname: %v", hostname)
	}

	rond, err = ron.NewServer(*f_port, *f_path)
	if err != nil {
		log.Fatal("unable to create server: %v", err)
	}

	for {
		line, err := goreadline.Readline("rond$ ", true)
		if err != nil {
			return
		}
		command := string(line)
		log.Debug("got from stdin: `%s`", line)

		cmd, err := minicli.Compile(command)
		if err != nil {
			log.Error("%v", err)
			continue
		}

		// No command was returned, must have been a blank line or a comment
		// line. Either way, don't try to run a nil command.
		if cmd == nil {
			continue
		}

		for resp := range minicli.ProcessCommand(cmd) {
			minipager.DefaultPager.Page(resp.String())

			errs := resp.Error()
			if errs != "" {
				fmt.Fprintln(os.Stderr, errs)
			}
		}
	}
}
Пример #5
0
func init() {
	minicli.Register(&minicli.Handler{
		Patterns: []string{
			"bird <flush,>",
			"bird <commit,>",
			"bird <static,> <network> <nh>",
			"bird <ospf,> <area> <network>",
		},
		Call: handleBird,
	})
	birdID = getRouterID()
	birdData = &Bird{
		Static:   make(map[string]string),
		OSPF:     make(map[string]*OSPF),
		RouterID: birdID,
	}

}
Пример #6
0
func init() {
	minicli.Register(&minicli.Handler{
		Patterns: []string{
			"dnsmasq <flush,>",
			"dnsmasq <commit,>",
			"dnsmasq <dhcp,> <range,> <addr> <low> <high>",
			"dnsmasq <dhcp,> option <router,> <addr> <server>",
			"dnsmasq <dhcp,> option <dns,> <addr> <server>",
			"dnsmasq <dhcp,> <static,> <addr> <mac> <ip>",
			"dnsmasq <dns,> <ip> <host>",
			"dnsmasq <upstream,> <ip>",
			"dnsmasq <ra,> <subnet>",
		},
		Call: handleDnsmasq,
	})
	dnsmasqData = &Dnsmasq{
		DHCP: make(map[string]*Dhcp),
		DNS:  make(map[string][]string),
		RAD:  make(map[string]bool),
	}
}