Remove old index files on startup (fixes #366)

This commit is contained in:
Jakob Borg 2014-06-15 20:31:26 +02:00
parent 9ca87f5314
commit 5fa8f8e50c

View File

@ -5,6 +5,7 @@
package main package main
import ( import (
"crypto/sha1"
"crypto/tls" "crypto/tls"
"flag" "flag"
"fmt" "fmt"
@ -353,6 +354,29 @@ func main() {
m.ScanRepos() m.ScanRepos()
m.SaveIndexes(confDir) m.SaveIndexes(confDir)
// Remove all .idx* files that don't belong to an active repo.
validIndexes := make(map[string]bool)
for _, repo := range cfg.Repositories {
dir := expandTilde(repo.Directory)
id := fmt.Sprintf("%x", sha1.Sum([]byte(dir)))
validIndexes[id] = true
}
allIndexes, err := filepath.Glob(filepath.Join(confDir, "*.idx*"))
if err == nil {
for _, idx := range allIndexes {
bn := filepath.Base(idx)
fs := strings.Split(bn, ".")
if len(fs) > 1 {
if _, ok := validIndexes[fs[0]]; !ok {
l.Infoln("Removing old index", bn)
os.Remove(idx)
}
}
}
}
// UPnP // UPnP
var externalPort = 0 var externalPort = 0