refactor: simplify.

This commit is contained in:
Fernandez Ludovic 2019-04-22 04:17:48 +02:00
parent 5b6b959074
commit a356fe3980

View File

@ -72,51 +72,20 @@ func watch(acmeFile string, baseConfig *dumper.BaseConfig) error {
log.Println("event:", event) log.Println("event:", event)
} }
switch { hash, errW := manageEvent(watcher, event, acmeFile, previousHash, baseConfig)
case event.Op&fsnotify.Rename == fsnotify.Rename: if errW != nil {
errW := watcher.Remove(acmeFile) log.Println("error:", errW)
if errW != nil { done <- true
log.Println("error:", errW) return
done <- true
return
}
errW = watcher.Add(acmeFile)
if errW != nil {
log.Println("error:", errW)
done <- true
return
}
fallthrough
case event.Op&fsnotify.Write == fsnotify.Write:
hash, errH := calculateHash(acmeFile)
if err != nil {
log.Println("error:", errH)
done <- true
return
}
if !bytes.Equal(previousHash, hash) {
previousHash = hash
if strings.EqualFold(os.Getenv("TCD_DEBUG"), "true") {
log.Println("detected changes on file:", event.Name)
}
if errD := dump(acmeFile, baseConfig); errD != nil {
log.Println("error:", errD)
done <- true
return
}
log.Println("Dumped new certificate data.")
}
} }
previousHash = hash
case errW, ok := <-watcher.Errors: case errW, ok := <-watcher.Errors:
if !ok { if !ok {
return return
} }
log.Println("error:", errW) log.Println("error:", errW)
done <- true done <- true
return return
@ -134,6 +103,39 @@ func watch(acmeFile string, baseConfig *dumper.BaseConfig) error {
return nil return nil
} }
func manageEvent(watcher *fsnotify.Watcher, event fsnotify.Event, acmeFile string, previousHash []byte, baseConfig *dumper.BaseConfig) ([]byte, error) {
if event.Op&fsnotify.Rename == fsnotify.Rename {
err := watcher.Remove(acmeFile)
if err != nil {
return nil, err
}
err = watcher.Add(acmeFile)
if err != nil {
return nil, err
}
}
hash, err := calculateHash(acmeFile)
if err != nil {
return nil, err
}
if !bytes.Equal(previousHash, hash) {
if strings.EqualFold(os.Getenv("TCD_DEBUG"), "true") {
log.Println("detected changes on file:", event.Name)
}
if errD := dump(acmeFile, baseConfig); errD != nil {
return nil, errD
}
log.Println("Dumped new certificate data.")
}
return hash, nil
}
func calculateHash(acmeFile string) ([]byte, error) { func calculateHash(acmeFile string) ([]byte, error) {
file, err := os.Open(acmeFile) file, err := os.Open(acmeFile)
if err != nil { if err != nil {