fix the parser.go lastupdate

This commit is contained in:
astaxie 2014-06-30 15:57:36 +08:00
parent 62e9c89010
commit 4dde2c59ff
1 changed files with 17 additions and 4 deletions

View File

@ -165,12 +165,12 @@ func compareFile(pkgRealpath string) bool {
return true return true
} }
json.Unmarshal(content, &pkgLastupdate) json.Unmarshal(content, &pkgLastupdate)
ft, err := os.Lstat(pkgRealpath) lastupdate, err := getpathTime(pkgRealpath)
if err != nil { if err != nil {
return true return true
} }
if v, ok := pkgLastupdate[pkgRealpath]; ok { if v, ok := pkgLastupdate[pkgRealpath]; ok {
if ft.ModTime().UnixNano() <= v { if lastupdate <= v {
return false return false
} }
} }
@ -179,14 +179,27 @@ func compareFile(pkgRealpath string) bool {
} }
func savetoFile(pkgRealpath string) { func savetoFile(pkgRealpath string) {
ft, err := os.Lstat(pkgRealpath) lastupdate, err := getpathTime(pkgRealpath)
if err != nil { if err != nil {
return return
} }
pkgLastupdate[pkgRealpath] = ft.ModTime().UnixNano() pkgLastupdate[pkgRealpath] = lastupdate
d, err := json.Marshal(pkgLastupdate) d, err := json.Marshal(pkgLastupdate)
if err != nil { if err != nil {
return return
} }
ioutil.WriteFile(path.Join(AppPath, lastupdateFilename), d, os.ModePerm) ioutil.WriteFile(path.Join(AppPath, lastupdateFilename), d, os.ModePerm)
} }
func getpathTime(pkgRealpath string) (lastupdate int64, err error) {
fl, err := ioutil.ReadDir(pkgRealpath)
if err != nil {
return lastupdate, err
}
for _, f := range fl {
if lastupdate < f.ModTime().UnixNano() {
lastupdate = f.ModTime().UnixNano()
}
}
return lastupdate, nil
}