6
1
mirror of https://git.mills.io/saltyim/saltyim.git synced 2024-06-25 00:08:26 +00:00

Improve error handling for GetIdentity() and missing User address

This commit is contained in:
James Mills 2022-03-19 16:02:40 +10:00
parent f5838a65a7
commit 7a3f2e5159
4 changed files with 18 additions and 3 deletions

@ -49,7 +49,11 @@ func init() {
func chat(identity, uri string, user string) {
key, me, err := saltyim.GetIdentity(identity)
if err != nil {
fmt.Fprintf(os.Stderr, "error reading identity %q: %s", identity, err)
fmt.Fprintf(os.Stderr, "error opening identity: %q", identity)
if me.IsZero() {
fmt.Fprintf(os.Stderr, "unable to find your user addressn in %q", identity)
fmt.Fprintln(os.Stderr, "tip: try adding # user: nick@domain to your identity")
}
os.Exit(2)
}

@ -66,7 +66,12 @@ func send(identity, user string, args ...string) {
key, me, err := saltyim.GetIdentity(identity)
if err != nil {
log.Fatalf("error opening identity: %q", identity)
fmt.Fprintf(os.Stderr, "error opening identity: %q", identity)
if me.IsZero() {
fmt.Fprintf(os.Stderr, "unable to find your user addressn in %q", identity)
fmt.Fprintln(os.Stderr, "tip: try adding # user: nick@domain to your identity")
}
os.Exit(2)
}
var msg string

@ -1,6 +1,7 @@
package saltyim
import (
"fmt"
"log"
"os"
@ -24,7 +25,7 @@ func GetIdentity(fn string) (*keys.EdX25519Key, Addr, error) {
id.Seek(0, 0)
me, err := ReadUser(id)
if err != nil {
log.Fatalf("error reading user from keyfile: %q", fn)
return key, Addr{}, fmt.Errorf("error reading user from keyfile: %q", fn)
}
return key, me, nil

@ -17,6 +17,11 @@ type Addr struct {
Domain string
}
// IsZero returns true if the address is empty
func (a Addr) IsZero() bool {
return a.User == "" && a.Domain == ""
}
func (a Addr) String() string {
return fmt.Sprint(a.User, "@", a.Domain)
}