Skip to content

Commit 67266e3

Browse files
committed
Better handle errors
1 parent 76386d8 commit 67266e3

File tree

1 file changed

+25
-20
lines changed

1 file changed

+25
-20
lines changed

cmd/portwarden/portwarden.go

Lines changed: 25 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,12 @@ func main() {
7272
if len(passphrase) == 0 {
7373
return errors.New(ErrNoPhassPhraseProvided)
7474
}
75-
encryptBackup(filename, passphrase)
75+
err := encryptBackup(filename, passphrase)
76+
if err != nil {
77+
fmt.Println("encryption failed: " + err.Error())
78+
return err
79+
}
80+
fmt.Println("encrypted export successful")
7681
return nil
7782
},
7883
},
@@ -87,7 +92,12 @@ func main() {
8792
if len(filename) == 0 {
8893
return errors.New(ErrNoFilenameProvided)
8994
}
90-
decryptBackup(filename, passphrase)
95+
err := decryptBackup(filename, passphrase)
96+
if err != nil {
97+
fmt.Println("encryption failed: " + err.Error())
98+
return err
99+
}
100+
fmt.Println("decryption successful")
91101
return nil
92102
},
93103
},
@@ -103,68 +113,63 @@ func main() {
103113

104114
}
105115

106-
func encryptBackup(fileName, passphrase string) {
116+
func encryptBackup(fileName, passphrase string) error {
107117
if !strings.HasSuffix(fileName, ".portwarden") {
108118
fileName += ".portwarden"
109119
}
110120

111121
pwes := []portwarden.PortWardenElement{}
112122
sessionKey, err := BWGetSessionKey()
113123
if err != nil {
114-
fmt.Println("encryption failed: " + err.Error())
115-
return
124+
return err
116125
}
117126

118127
// save formmated json to "main.json"
119128
rawByte := BWListItemsRawBytes(sessionKey)
120129
if err := json.Unmarshal(rawByte, &pwes); err != nil {
121-
fmt.Println("encryption failed: " + err.Error())
122-
return
130+
return err
123131
}
124132
err = BWGetAllAttachments(BackupFolderName, sessionKey, pwes)
125133
if err != nil {
126-
fmt.Println("encryption failed: " + err.Error())
127-
return
134+
return err
128135
}
129136
formattedByte := pretty.Pretty(rawByte)
130137
if err := ioutil.WriteFile(BackupFolderName+"main.json", formattedByte, 0644); err != nil {
131-
fmt.Println("encryption failed: " + err.Error())
132-
return
138+
return err
133139
}
134140

135141
var b bytes.Buffer
136142
writer := bufio.NewWriter(&b)
137143
err = archiver.Zip.Write(writer, []string{BackupFolderName})
138144
if err != nil {
139-
fmt.Println("encryption failed: " + err.Error())
140-
return
145+
return err
141146
}
142147

143148
// derive a key from the master password
144149
err = portwarden.EncryptFile(fileName, b.Bytes(), passphrase)
145150
if err != nil {
146-
fmt.Println("encryption failed: " + err.Error())
147-
return
151+
return err
148152
}
149153

150154
// cleanup: delete temporary files
151155
err = os.RemoveAll(BackupFolderName)
152156
if err != nil {
153-
fmt.Println("encryption failed: " + err.Error())
154-
return
157+
return err
155158
}
159+
return nil
156160
}
157161

158-
func decryptBackup(fileName, passphrase string) {
162+
func decryptBackup(fileName, passphrase string) error {
159163
tb, err := portwarden.DecryptFile(fileName, passphrase)
160164
if err != nil {
161165
fmt.Println("decryption failed: " + err.Error())
162-
return
166+
return err
163167
}
164168
if err := ioutil.WriteFile(fileName+".decrypted"+".zip", tb, 0644); err != nil {
165169
fmt.Println("decryption failed: " + err.Error())
166-
return
170+
return err
167171
}
172+
return nil
168173
}
169174

170175
func extractSessionKey(stdout string) (string, error) {

0 commit comments

Comments
 (0)