Codebase list golang-github-emersion-go-maildir / 81c527b
Simplify Delivery.{Close,Abort} Simon Ser 4 years ago
1 changed file(s) with 8 addition(s) and 7 deletion(s). Raw diff Collapse all Expand all
344344
345345 // Close closes the underlying file and moves it to new.
346346 func (d *Delivery) Close() error {
347 tmppath := d.file.Name()
347348 err := d.file.Close()
348349 if err != nil {
349350 return err
350351 }
351 err = os.Link(filepath.Join(string(d.d), "tmp", d.key),
352 filepath.Join(string(d.d), "new", d.key))
353 if err != nil {
354 return err
355 }
356 err = os.Remove(filepath.Join(string(d.d), "tmp", d.key))
352 err = os.Link(tmppath, filepath.Join(string(d.d), "new", d.key))
353 if err != nil {
354 return err
355 }
356 err = os.Remove(tmppath)
357357 if err != nil {
358358 return err
359359 }
362362
363363 // Abort closes the underlying file and removes it completely.
364364 func (d *Delivery) Abort() error {
365 tmppath := d.file.Name()
365366 err := d.file.Close()
366367 if err != nil {
367368 return err
368369 }
369 err = os.Remove(filepath.Join(string(d.d), "tmp", d.key))
370 err = os.Remove(tmppath)
370371 if err != nil {
371372 return err
372373 }