From 6b11b54a190875d651d046c040fdbb0c61ec0aee Mon Sep 17 00:00:00 2001
From: ale <ale@incal.net>
Date: Fri, 15 Mar 2013 10:32:38 +0000
Subject: [PATCH] only send out update email if there are recipients

---
 lib/ssbm.go | 25 ++++++++++++++++---------
 1 file changed, 16 insertions(+), 9 deletions(-)

diff --git a/lib/ssbm.go b/lib/ssbm.go
index acb4f6e..92a3fc1 100644
--- a/lib/ssbm.go
+++ b/lib/ssbm.go
@@ -47,8 +47,12 @@ func NewSsbm(rootDir string) *Ssbm {
 func (s *Ssbm) Init(email string, keyId string, selfKey io.Reader) error {
 	os.Mkdir(s.rootDir, 0700)
 	os.Mkdir(s.updatesDir, 0700)
-	s.config.Set("self_email", email)
-	s.config.Set("self_key_id", keyId)
+	if err := s.config.Set("self_email", email); err != nil {
+		log.Printf("error setting config: %s", err)
+	}
+	if err := s.config.Set("self_key_id", keyId); err != nil {
+		log.Printf("error setting config: %s", err)
+	}
 	return s.gpg.Init(keyId, selfKey)
 }
 
@@ -126,14 +130,17 @@ func (s *Ssbm) Save() error {
 		}
 	}
 
-	msg, err := s.gpg.EncryptAndSign(data, recipientKeys)
-	if err != nil {
-		return err
-	}
+	// Encrypt and sign the outgoing update emails (but only if the
+	// recipient list is not empty).
+	if len(recipientKeys) > 0 {
+		msg, err := s.gpg.EncryptAndSign(data, recipientKeys)
+		if err != nil {
+			return err
+		}
 
-	// Send out the update emails.
-	if err := s.mailer.SendMail(selfEmail, recipientEmails, msg); err != nil {
-		return err
+		if err := s.mailer.SendMail(selfEmail, recipientEmails, msg); err != nil {
+			return err
+		}
 	}
 
 	return nil
-- 
GitLab