feat: export a wallet in json
This commit is contained in:
parent
09445236a4
commit
c35b543004
4 changed files with 25 additions and 0 deletions
|
@ -12,6 +12,7 @@ Which is based on [Keep A Changelog](http://keepachangelog.com/)
|
|||
- Use go module to get this software
|
||||
- Generate random password
|
||||
- Print the expiration time of TOTP code
|
||||
- Export a wallet in json
|
||||
|
||||
## Changed
|
||||
|
||||
|
|
11
gpm/cli.go
11
gpm/cli.go
|
@ -254,3 +254,14 @@ func (c *Cli) copyEntry() {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Cli) ExportWallet() {
|
||||
c.loadWallet()
|
||||
|
||||
data, err := c.Wallet.Export()
|
||||
if err != nil {
|
||||
c.error(fmt.Sprintf("%s", err))
|
||||
}
|
||||
|
||||
fmt.Println(data)
|
||||
}
|
||||
|
|
|
@ -37,6 +37,7 @@ var(
|
|||
DIGIT = flag.Bool("digit", false, "use digit to generate a random password")
|
||||
LETTER = flag.Bool("letter", false, "use letter to generate a random password")
|
||||
SPECIAL = flag.Bool("special", false, "use special chars to generate a random password")
|
||||
EXPORT = flag.Bool("export", false, "export a wallet in json format")
|
||||
HELP = flag.Bool("help", false, "print this help message")
|
||||
)
|
||||
|
||||
|
@ -61,5 +62,7 @@ func Run() {
|
|||
cli.updateEntry()
|
||||
} else if *DELETE {
|
||||
cli.deleteEntry()
|
||||
} else if *EXPORT {
|
||||
cli.ExportWallet()
|
||||
}
|
||||
}
|
||||
|
|
|
@ -189,3 +189,13 @@ func (w *Wallet) UpdateEntry(entry Entry) error {
|
|||
|
||||
return fmt.Errorf("unknown error during the update")
|
||||
}
|
||||
|
||||
// Export a wallet to json
|
||||
func (w *Wallet) Export() (string, error) {
|
||||
data, err := json.Marshal(&w.Entries)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
||||
return string(data), nil
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue