Files

58 lines
1.2 KiB
Go
Raw Permalink Normal View History

2021-06-24 05:12:38 +08:00
// Copyright 2021 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
2021-06-24 05:12:38 +08:00
package doctor
import (
"context"
2021-06-24 05:12:38 +08:00
repo_model "code.gitea.io/gitea/models/repo"
2025-12-15 11:55:44 -08:00
"code.gitea.io/gitea/modules/gitrepo"
2021-06-24 05:12:38 +08:00
"code.gitea.io/gitea/modules/log"
)
func checkOldArchives(ctx context.Context, logger log.Logger, autofix bool) error {
2021-06-24 05:12:38 +08:00
numRepos := 0
numReposUpdated := 0
err := iterateRepositories(ctx, func(repo *repo_model.Repository) error {
2021-06-24 05:12:38 +08:00
if repo.IsEmpty {
return nil
}
2025-12-15 11:55:44 -08:00
isDir, err := gitrepo.IsRepoDirExist(ctx, repo, "archives")
2021-06-24 05:12:38 +08:00
if err != nil {
2025-12-15 11:55:44 -08:00
log.Warn("check if %s is directory failed: %v", repo.FullName(), err)
2021-06-24 05:12:38 +08:00
}
if isDir {
numRepos++
if autofix {
2025-12-15 11:55:44 -08:00
err := gitrepo.RemoveRepoFileOrDir(ctx, repo, "archives")
if err == nil {
2021-06-24 05:12:38 +08:00
numReposUpdated++
} else {
2025-12-15 11:55:44 -08:00
log.Warn("remove %s failed: %v", repo.FullName(), err)
2021-06-24 05:12:38 +08:00
}
}
}
return nil
})
if autofix {
logger.Info("%d / %d old archives in repository deleted", numReposUpdated, numRepos)
} else {
logger.Info("%d old archives in repository need to be deleted", numRepos)
}
return err
}
func init() {
Register(&Check{
Title: "Check old archives",
Name: "check-old-archives",
IsDefault: false,
Run: checkOldArchives,
Priority: 7,
})
}