From 2f4bd7faf2acefd8fcede7b56a5eb1279567777d Mon Sep 17 00:00:00 2001 From: Jay Date: Mon, 12 Mar 2018 18:07:05 +0800 Subject: [PATCH] add struct to map --- libs/flag.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/libs/flag.go b/libs/flag.go index 9b97ea0..dbba7b1 100644 --- a/libs/flag.go +++ b/libs/flag.go @@ -2,6 +2,7 @@ package libs import ( "flag" + "reflect" ) // Flags - flag values struct @@ -27,3 +28,16 @@ func RegFlag(f *Flags) { flag.BoolVar(&f.Override, "y", false, "if output file exists override") flag.StringVar(&f.Password, "p", "", "private key password") } + +func (f *Flags) ToMap() map[string]interface{} { + t := reflect.ValueOf(f).Elem() + + smap := make(map[string]interface{}) + + for i := 0; i < t.NumField(); i++ { + f := t.Field(i) + smap[t.Type().Field(i).Name] = f.Interface() + } + + return smap +}