big code cleanup

master
Carlo Strub 7 years ago
parent 14d7ba2cf2
commit cf598f8710

@ -29,6 +29,11 @@ test:
${SISYPHUS_GO_EXECUTABLE} get -u github.com/onsi/gomega ${SISYPHUS_GO_EXECUTABLE} get -u github.com/onsi/gomega
${GOPATH}/bin/ginkgo -r --randomizeAllSpecs --randomizeSuites --failOnPending --progress ${GOPATH}/bin/ginkgo -r --randomizeAllSpecs --randomizeSuites --failOnPending --progress
static-test:
${SISYPHUS_GO_EXECUTABLE} get -u github.com/alecthomas/gometalinter
${GOPATH}/bin/gometalinter --install
${GOPATH}/bin/gometalinter --vendor --deadline=5m --disable-all --enable=gas --enable=goconst --enable=gocyclo --enable=unused --enable=interfacer --enable=lll --enable=misspell --enable=staticcheck --enable=aligncheck --enable=deadcode --enable=goimports --enable=ineffassign --enable=unconvert --enable=unparam --enable=varcheck --enable=dupl --enable=errcheck --enable=golint --enable=structcheck --enable=gosimple --enable=safesql --tests --json . > gometalinter.out
integration-test: integration-test:
${SISYPHUS_GO_EXECUTABLE} build ${SISYPHUS_GO_EXECUTABLE} build
./sisyphus run ./sisyphus run

@ -30,9 +30,9 @@ func (p Pidfile) savePID(process int) error {
return err return err
} }
file.Sync() err = file.Sync()
return nil return err
} }
// DaemonStart starts sisyphus as a backgound process // DaemonStart starts sisyphus as a backgound process
@ -43,10 +43,13 @@ func (p Pidfile) DaemonStart() error {
} }
cmd := exec.Command(os.Args[0], "run") cmd := exec.Command(os.Args[0], "run")
cmd.Start() err := cmd.Start()
if err != nil {
return err
}
log.Printf("starting sisyphus process ID [%v]\n", cmd.Process.Pid) log.Printf("starting sisyphus process ID [%v]\n", cmd.Process.Pid)
log.Println("sisyphus started") log.Println("sisyphus started")
err := (p).savePID(cmd.Process.Pid) err = (p).savePID(cmd.Process.Pid)
return err return err
} }
@ -77,7 +80,10 @@ func (p Pidfile) DaemonStop() error {
} }
// remove PID file // remove PID file
os.Remove(string(p)) err = os.Remove(string(p))
if err != nil {
return err
}
log.Printf("stopping sisyphus process ID [%v]\n", processID) log.Printf("stopping sisyphus process ID [%v]\n", processID)
// kill process and exit immediately // kill process and exit immediately

@ -20,10 +20,7 @@ func OpenDB(maildir string) (db *bolt.DB, err error) {
// Create DB bucket for the map of processed e-mail IDs // Create DB bucket for the map of processed e-mail IDs
err = db.Update(func(tx *bolt.Tx) error { err = db.Update(func(tx *bolt.Tx) error {
_, err := tx.CreateBucketIfNotExists([]byte("Processed")) _, err := tx.CreateBucketIfNotExists([]byte("Processed"))
if err != nil { return err
return err
}
return nil
}) })
if err != nil { if err != nil {
return db, err return db, err
@ -33,10 +30,7 @@ func OpenDB(maildir string) (db *bolt.DB, err error) {
err = db.Update(func(tx *bolt.Tx) error { err = db.Update(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("Processed")) b := tx.Bucket([]byte("Processed"))
_, err := b.CreateBucketIfNotExists([]byte("Mails")) _, err := b.CreateBucketIfNotExists([]byte("Mails"))
if err != nil { return err
return err
}
return nil
}) })
if err != nil { if err != nil {
return db, err return db, err
@ -46,10 +40,7 @@ func OpenDB(maildir string) (db *bolt.DB, err error) {
err = db.Update(func(tx *bolt.Tx) error { err = db.Update(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("Processed")) b := tx.Bucket([]byte("Processed"))
_, err := b.CreateBucketIfNotExists([]byte("Counters")) _, err := b.CreateBucketIfNotExists([]byte("Counters"))
if err != nil { return err
return err
}
return nil
}) })
if err != nil { if err != nil {
return db, err return db, err
@ -58,10 +49,7 @@ func OpenDB(maildir string) (db *bolt.DB, err error) {
// Create DB bucket for word lists // Create DB bucket for word lists
err = db.Update(func(tx *bolt.Tx) error { err = db.Update(func(tx *bolt.Tx) error {
_, err := tx.CreateBucketIfNotExists([]byte("Wordlists")) _, err := tx.CreateBucketIfNotExists([]byte("Wordlists"))
if err != nil { return err
return err
}
return nil
}) })
if err != nil { if err != nil {
return db, err return db, err
@ -71,10 +59,7 @@ func OpenDB(maildir string) (db *bolt.DB, err error) {
err = db.Update(func(tx *bolt.Tx) error { err = db.Update(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("Wordlists")) b := tx.Bucket([]byte("Wordlists"))
_, err := b.CreateBucketIfNotExists([]byte("Junk")) _, err := b.CreateBucketIfNotExists([]byte("Junk"))
if err != nil { return err
return err
}
return nil
}) })
if err != nil { if err != nil {
return db, err return db, err
@ -84,10 +69,7 @@ func OpenDB(maildir string) (db *bolt.DB, err error) {
err = db.Update(func(tx *bolt.Tx) error { err = db.Update(func(tx *bolt.Tx) error {
b := tx.Bucket([]byte("Wordlists")) b := tx.Bucket([]byte("Wordlists"))
_, err := b.CreateBucketIfNotExists([]byte("Good")) _, err := b.CreateBucketIfNotExists([]byte("Good"))
if err != nil { return err
return err
}
return nil
}) })
log.Println("database loaded") log.Println("database loaded")

@ -34,17 +34,23 @@ type Mail struct {
} }
// CreateDirs creates all the required dirs -- if not already there. // CreateDirs creates all the required dirs -- if not already there.
func (d Maildir) CreateDirs() { func (d Maildir) CreateDirs() error {
dir := string(d) dir := string(d)
log.Println("create missing directories for Maildir " + dir) log.Println("create missing directories for Maildir " + dir)
os.MkdirAll(dir+"/.Junk/cur", 0700) err := os.MkdirAll(dir+"/.Junk/cur", 0700)
os.MkdirAll(dir+"/new", 0700) if err != nil {
os.MkdirAll(dir+"/cur", 0700) return err
}
err = os.MkdirAll(dir+"/new", 0700)
if err != nil {
return err
}
err = os.MkdirAll(dir+"/cur", 0700)
return return err
} }
// Index loads all mail keys from the Maildir directory for processing. // Index loads all mail keys from the Maildir directory for processing.
@ -167,6 +173,9 @@ func wordlist(s string) (l []string) {
raw := strings.Split(s, " ") raw := strings.Split(s, " ")
var clean []string var clean []string
// use regexp compile for use in the loop that follows
regexMatcher, _ := regexp.Compile("(^[a-z]+$)")
for _, w := range raw { for _, w := range raw {
// no long or too short words // no long or too short words
@ -176,7 +185,7 @@ func wordlist(s string) (l []string) {
} }
// no numbers, special characters, etc. -- only words // no numbers, special characters, etc. -- only words
match, _ := regexp.MatchString("(^[a-z]+$)", w) match := regexMatcher.MatchString(w)
if !match { if !match {
continue continue
} else { } else {

Loading…
Cancel
Save