functional/rpcpb/etcd_config.go
func (e *Etcd) Flags() (fs []string) {
	tp := reflect.TypeOf(*e)
	vo := reflect.ValueOf(*e)
	for _, name := range etcdFields {
		field, ok := tp.FieldByName(name)
		if !ok {
			panic(fmt.Errorf("field %q not found", name))
		}
		fv := reflect.Indirect(vo).FieldByName(name)
		var sv string
		switch fv.Type().Kind() {
		case reflect.String:
			sv = fv.String()
		case reflect.Slice:
			n := fv.Len()
			sl := make([]string, n)
			for i := 0; i < n; i++ {
				sl[i] = fv.Index(i).String()
			}
			sv = strings.Join(sl, ",")
		case reflect.Int64:
			sv = fmt.Sprintf("%d", fv.Int())
		case reflect.Bool:
			sv = fmt.Sprintf("%v", fv.Bool())
		default:
			panic(fmt.Errorf("field %q (%v) cannot be parsed", name, fv.Type().Kind()))
		}

		fname := field.Tag.Get("yaml")

		// TODO: remove this
		if fname == "initial-corrupt-check" {
			fname = "experimental-" + fname
		}

		if sv != "" {
			fs = append(fs, fmt.Sprintf("--%s=%s", fname, sv))
		}
	}
	return fs
}
func (e *Etcd) Flags() (fs []string) {
	tp := reflect.TypeOf(*e)
	vo := reflect.ValueOf(*e)
	for _, name := range etcdFields {
		field, ok := tp.FieldByName(name)
		if !ok {
			panic(fmt.Errorf("field %q not found", name))
		}
		fv := reflect.Indirect(vo).FieldByName(name)
		var sv string
		switch fv.Type().Kind() {
		case reflect.String:
			sv = fv.String()
		case reflect.Slice:
			n := fv.Len()
			sl := make([]string, n)
			for i := 0; i < n; i++ {
				sl[i] = fv.Index(i).String()
			}
			sv = strings.Join(sl, ",")
		case reflect.Int64:
			sv = fmt.Sprintf("%d", fv.Int())
		case reflect.Bool:
			sv = fmt.Sprintf("%v", fv.Bool())
		default:
			panic(fmt.Errorf("field %q (%v) cannot be parsed", name, fv.Type().Kind()))
		}

		fname := field.Tag.Get("yaml")

		// TODO: remove this
		if fname == "initial-corrupt-check" {
			fname = "experimental-" + fname
		}

		if sv != "" {
			fs = append(fs, fmt.Sprintf("--%s=%s", fname, sv))
		}
	}
	return fs
}
func ( e * Etcd ) Flags ( ) ( fs [ ] string ) { tp := reflect . TypeOf ( * e ) vo := reflect . ValueOf ( * e ) for _ , name := range etcdFields { field , ok := tp . FieldByName ( name ) if ! ok { panic ( fmt . Errorf ( " " , name ) ) } fv := reflect . Indirect ( vo ) . FieldByName ( name ) var sv string switch fv . Type ( ) . Kind ( ) { case reflect . String : sv = fv . String ( ) case reflect . Slice : n := fv . Len ( ) sl := make ( [ ] string , n ) for i := 0 ; i < n ; i ++ { sl [ i ] = fv . Index ( i ) . String ( ) } sv = strings . Join ( sl , " " ) case reflect . Int64 : sv = fmt . Sprintf ( " " , fv . Int ( ) ) case reflect . Bool : sv = fmt . Sprintf ( " " , fv . Bool ( ) ) default : panic ( fmt . Errorf ( " " , name , fv . Type ( ) . Kind ( ) ) ) } fname := field . Tag . Get ( " " ) // TODO: remove this if fname == " " { fname = " " + fname } if sv != " " { fs = append ( fs , fmt . Sprintf ( " " , fname , sv ) ) } } return fs }
// Flags returns etcd flags in string slice.
Flags returns etcd flags in string slice .