func doGet(vault *opvault.Vault, id, extract string, jsonFormat bool) { item, err := vault.Get(id) assert(err) err = item.Decrypt(vault) assert(err) var ( v interface{} = item.Data f = true ) if extract != "" { v, f = item.Extract(extract) if !f { abortf("field %q not found", extract) } } if jsonFormat { err = json.NewEncoder(os.Stdout).Encode(v) assert(err) } else { if extract != "" { fmt.Printf("%s\n", v) } else { fmt.Printf("id: %s\n", item.UUID) if v, f := item.Extract("url"); f { fmt.Printf("url: %s\n", v) } if v, f := item.Extract("username"); f { fmt.Printf("username: %s\n", v) } if v, f := item.Extract("password"); f { fmt.Printf("password: %s\n", v) } } } }