|
|
@ -1186,6 +1186,8 @@ func MirrorUpdate() { |
|
|
|
isMirrorUpdating = true |
|
|
|
isMirrorUpdating = true |
|
|
|
defer func() { isMirrorUpdating = false }() |
|
|
|
defer func() { isMirrorUpdating = false }() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
mirrors := make([]*Mirror, 0, 10) |
|
|
|
|
|
|
|
|
|
|
|
if err := x.Iterate(new(Mirror), func(idx int, bean interface{}) error { |
|
|
|
if err := x.Iterate(new(Mirror), func(idx int, bean interface{}) error { |
|
|
|
m := bean.(*Mirror) |
|
|
|
m := bean.(*Mirror) |
|
|
|
if m.NextUpdate.After(time.Now()) { |
|
|
|
if m.NextUpdate.After(time.Now()) { |
|
|
@ -1196,13 +1198,25 @@ func MirrorUpdate() { |
|
|
|
if _, stderr, err := process.ExecDir(10*time.Minute, |
|
|
|
if _, stderr, err := process.ExecDir(10*time.Minute, |
|
|
|
repoPath, fmt.Sprintf("MirrorUpdate: %s", repoPath), |
|
|
|
repoPath, fmt.Sprintf("MirrorUpdate: %s", repoPath), |
|
|
|
"git", "remote", "update"); err != nil { |
|
|
|
"git", "remote", "update"); err != nil { |
|
|
|
return errors.New("git remote update: " + stderr) |
|
|
|
desc := fmt.Sprintf("Fail to update mirror repository(%s): %s", repoPath, stderr) |
|
|
|
|
|
|
|
log.Error(4, desc) |
|
|
|
|
|
|
|
if err = CreateRepositoryNotice(desc); err != nil { |
|
|
|
|
|
|
|
log.Error(4, "Fail to add notice: %v", err) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return nil |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
m.NextUpdate = time.Now().Add(time.Duration(m.Interval) * time.Hour) |
|
|
|
m.NextUpdate = time.Now().Add(time.Duration(m.Interval) * time.Hour) |
|
|
|
return UpdateMirror(m) |
|
|
|
mirrors = append(mirrors, m) |
|
|
|
|
|
|
|
return nil |
|
|
|
}); err != nil { |
|
|
|
}); err != nil { |
|
|
|
log.Error(4, "repo.MirrorUpdate: %v", err) |
|
|
|
log.Error(4, "MirrorUpdate: %v", err) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for i := range mirrors { |
|
|
|
|
|
|
|
if err := UpdateMirror(mirrors[i]); err != nil { |
|
|
|
|
|
|
|
log.Error(4, "UpdateMirror", fmt.Sprintf("%s: %v", mirrors[i].RepoName, err)) |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|