Exemplo n.º 1
0
Arquivo: main.go Projeto: fd/1pwd
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)
			}
		}
	}
}