Save marker

This commit is contained in:
Richard Patel 2019-02-03 16:06:52 +01:00
parent fe1e7bf261
commit acbfd78a5d
No known key found for this signature in database
GPG Key ID: C268B2BBDA2ABECB

View File

@ -1,10 +1,13 @@
package main
import (
"bytes"
"encoding/gob"
"fmt"
"github.com/beeker1121/goque"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
"io"
"os"
"path/filepath"
"strconv"
@ -98,10 +101,18 @@ func SaveTask(od *OD) (err error) {
err = pauseEnc.Encode(&paused)
if err != nil { return err }
// Save mark
_, err = pausedF.Write([]byte("--------"))
if err != nil { return err }
// Write pause scan state
err = od.Scanned.Marshal(pausedF)
if err != nil { return err }
// Save mark
_, err = pausedF.Write([]byte("--------"))
if err != nil { return err }
return nil
}
@ -139,10 +150,25 @@ func resumeQueue(id uint64) (od *OD, err error) {
if err != nil { return nil, err }
atomic.StoreInt64(&od.InProgress, paused.InProgress)
// Check mark
var mark [8]byte
_, err = io.ReadFull(pausedF, mark[:])
if err != nil { return nil, err }
if !bytes.Equal(mark[:], []byte("--------")) {
return nil, fmt.Errorf("corrupt pause file")
}
// Read pause scan state
err = od.Scanned.Unmarshal(pausedF)
if err != nil { return nil, err }
// Check mark
_, err = io.ReadFull(pausedF, mark[:])
if err != nil { return nil, err }
if !bytes.Equal(mark[:], []byte("--------")) {
return nil, fmt.Errorf("corrupt pause file")
}
// Open queue
bq, err := OpenQueue(fPath)
if err != nil { return nil, err }