func openVault(srv server.Server, config core.Config) (err error) { xdg, err := config.Xdg() if err != nil { return } data_home, err := xdg.DataHome() if err != nil { return } vault_path := fmt.Sprintf("%s/vault", data_home) vault_info, err := os.Stat(vault_path) if err != nil { return errors.Decorated(err) } mmi, err := ui.Ui(srv, config) if err != nil { return } var master string if vault_info == nil { master, err = readNewMaster(mmi, "This is a new vault") if err != nil { return } } else { master, err = mmi.ReadPassword("Please enter your encryption phrase\nto open the password vault.") if err != nil { return } } var isopen bool err = srv.Open(master, &isopen) if err != nil { return } if !isopen { return errors.New("Could not open vault") } return }