Add cleanup on Ctl+C

This commit is contained in:
Zack Scholl 2017-12-14 16:32:15 -07:00
parent 407d85270c
commit e8d5afe1fa
1 changed files with 23 additions and 1 deletions

View File

@ -7,15 +7,17 @@ import (
"io"
"net"
"os"
"os/signal"
"path"
"strconv"
"strings"
"sync"
"syscall"
"time"
"github.com/dustin/go-humanize"
"github.com/schollz/progressbar"
"github.com/schollz/tarinator-go"
tarinator "github.com/schollz/tarinator-go"
"github.com/pkg/errors"
log "github.com/sirupsen/logrus"
@ -100,7 +102,27 @@ func NewConnection(flags *Flags) (*Connection, error) {
return c, nil
}
func (c *Connection) cleanup() {
log.Debug("cleaning")
for id := 1; id <= 8; id++ {
os.Remove(path.Join(c.Path, c.File.Name+".enc."+strconv.Itoa(id)))
}
os.Remove(path.Join(c.Path, c.File.Name+".enc"))
}
func (c *Connection) Run() error {
// catch the Ctl+C
catchCtlC := make(chan os.Signal, 2)
signal.Notify(catchCtlC, os.Interrupt, syscall.SIGTERM)
go func() {
<-catchCtlC
c.cleanup()
fmt.Println("\nExiting")
os.Exit(1)
}()
defer c.cleanup()
forceSingleThreaded := false
if c.IsSender {
fsize, err := FileSize(path.Join(c.File.Path, c.File.Name))