github.com/dahs81/otto@v0.2.1-0.20160126165905-6400716cf085/plugin/server_mux.go (about) 1 package plugin 2 3 import ( 4 "fmt" 5 "os" 6 ) 7 8 // ServeMuxMap is the type that is used to configure ServeMux 9 type ServeMuxMap map[string]*ServeOpts 10 11 // ServeMux is like Serve, but serves multiple types of plugins determined 12 // by the argument given on the command-line. 13 // 14 // This command doesn't return until the plugin is done being executed. Any 15 // errors are logged or output to stderr. 16 func ServeMux(m ServeMuxMap) { 17 if len(os.Args) != 2 { 18 fmt.Fprintf(os.Stderr, 19 "Invoked improperly. This is an internal command that shouldn't\n"+ 20 "be manually invoked.\n") 21 os.Exit(1) 22 } 23 24 opts, ok := m[os.Args[1]] 25 if !ok { 26 fmt.Fprintf(os.Stderr, "Unknown plugin: %s\n", os.Args[1]) 27 os.Exit(1) 28 } 29 30 Serve(opts) 31 }