mirror of
https://gitee.com/milvus-io/milvus.git
synced 2025-12-07 01:28:27 +08:00
Improve help message (#5870)
Signed-off-by: Congqi Xia <congqi.xia@zilliz.com>
This commit is contained in:
parent
7ad33c34b8
commit
2f8bccda8d
40
cmd/main.go
40
cmd/main.go
@ -14,9 +14,11 @@ package main
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path"
|
||||
"strings"
|
||||
"syscall"
|
||||
|
||||
"github.com/milvus-io/milvus/cmd/roles"
|
||||
@ -124,6 +126,27 @@ func makeRuntimeDir(dir string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// simplified print from flag package
|
||||
func printUsage(w io.Writer, f *flag.Flag) {
|
||||
s := fmt.Sprintf(" -%s", f.Name) // Two spaces before -; see next two comments.
|
||||
name, usage := flag.UnquoteUsage(f)
|
||||
if len(name) > 0 {
|
||||
s += " " + name
|
||||
}
|
||||
// Boolean flags of one ASCII letter are so common we
|
||||
// treat them specially, putting their usage on the same line.
|
||||
if len(s) <= 4 { // space, space, '-', 'x'.
|
||||
s += "\t"
|
||||
} else {
|
||||
// Four spaces before the tab triggers good alignment
|
||||
// for both 4- and 8-space tab stops.
|
||||
s += "\n \t"
|
||||
}
|
||||
s += strings.ReplaceAll(usage, "\n", "\n \t")
|
||||
|
||||
fmt.Fprint(w, s, "\n")
|
||||
}
|
||||
|
||||
func main() {
|
||||
if len(os.Args) < 3 {
|
||||
_, _ = fmt.Fprint(os.Stderr, "usage: milvus [command] [server type] [flags]\n")
|
||||
@ -142,6 +165,23 @@ func main() {
|
||||
flags.BoolVar(&enableIndexCoord, roleIndexCoord, false, "enable index coordinator")
|
||||
flags.BoolVar(&enableDataCoord, roleDataCoord, false, "enable data coordinator")
|
||||
|
||||
flags.Usage = func() {
|
||||
fmt.Fprintf(flags.Output(), "Usage of %s:\n", os.Args[0])
|
||||
switch {
|
||||
case serverType == roleMixture:
|
||||
flags.VisitAll(func(f *flag.Flag) {
|
||||
printUsage(flags.Output(), f)
|
||||
})
|
||||
default:
|
||||
flags.VisitAll(func(f *flag.Flag) {
|
||||
if f.Name != "alias" {
|
||||
return
|
||||
}
|
||||
printUsage(flags.Output(), f)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if err := flags.Parse(os.Args[3:]); err != nil {
|
||||
os.Exit(-1)
|
||||
}
|
||||
|
||||
@ -170,32 +170,19 @@ func (c *GrpcClient) Register() error {
|
||||
}
|
||||
|
||||
func (c *GrpcClient) recall(caller func() (interface{}, error)) (interface{}, error) {
|
||||
ch := make(chan struct{}, 1)
|
||||
var ret interface{}
|
||||
var err error
|
||||
go func() {
|
||||
ret, err = caller()
|
||||
ret, err := caller()
|
||||
if err == nil {
|
||||
ch <- struct{}{}
|
||||
return
|
||||
return ret, nil
|
||||
}
|
||||
for i := 0; i < c.recallTry; i++ {
|
||||
err = c.connect()
|
||||
if err == nil {
|
||||
ret, err = caller()
|
||||
if err == nil {
|
||||
ch <- struct{}{}
|
||||
return
|
||||
return ret, nil
|
||||
}
|
||||
}
|
||||
}
|
||||
ch <- struct{}{}
|
||||
}()
|
||||
select {
|
||||
case <-c.ctx.Done():
|
||||
return nil, errors.New("context canceled")
|
||||
case <-ch:
|
||||
}
|
||||
return ret, err
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user