From b6a2323981a7a89205a382ddf0542e205e292d3d Mon Sep 17 00:00:00 2001 From: Zettat123 Date: Mon, 27 Mar 2023 16:28:22 +0800 Subject: [PATCH] Check LFS/Packages settings in dump and doctor command (#23631) (#23730) Backport #23631 Close #23622 As described in the issue, disabling the LFS/Package settings will cause errors when running `gitea dump` or `gitea doctor`. We need to check the settings and the related operations should be skipped if the settings are disabled. --- cmd/dump.go | 4 ++++ modules/doctor/storage.go | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/cmd/dump.go b/cmd/dump.go index c802849f8e..ab426fe687 100644 --- a/cmd/dump.go +++ b/cmd/dump.go @@ -250,6 +250,8 @@ func runDump(ctx *cli.Context) error { if ctx.IsSet("skip-lfs-data") && ctx.Bool("skip-lfs-data") { log.Info("Skip dumping LFS data") + } else if !setting.LFS.StartServer { + log.Info("LFS isn't enabled. Skip dumping LFS data") } else if err := storage.LFS.IterateObjects(func(objPath string, object storage.Object) error { info, err := object.Stat() if err != nil { @@ -364,6 +366,8 @@ func runDump(ctx *cli.Context) error { if ctx.IsSet("skip-package-data") && ctx.Bool("skip-package-data") { log.Info("Skip dumping package data") + } else if !setting.Packages.Enabled { + log.Info("Packages isn't enabled. Skip dumping package data") } else if err := storage.Packages.IterateObjects(func(objPath string, object storage.Object) error { info, err := object.Stat() if err != nil { diff --git a/modules/doctor/storage.go b/modules/doctor/storage.go index aa987de447..12ce446c00 100644 --- a/modules/doctor/storage.go +++ b/modules/doctor/storage.go @@ -16,6 +16,7 @@ import ( "code.gitea.io/gitea/modules/base" "code.gitea.io/gitea/modules/log" packages_module "code.gitea.io/gitea/modules/packages" + "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/storage" "code.gitea.io/gitea/modules/util" ) @@ -111,6 +112,10 @@ func checkStorage(opts *checkStorageOptions) func(ctx context.Context, logger lo } if opts.LFS || opts.All { + if !setting.LFS.StartServer { + logger.Info("LFS isn't enabled (skipped)") + return nil + } if err := commonCheckStorage(ctx, logger, autofix, &commonStorageCheckOptions{ storer: storage.LFS, @@ -173,6 +178,10 @@ func checkStorage(opts *checkStorageOptions) func(ctx context.Context, logger lo } if opts.Packages || opts.All { + if !setting.Packages.Enabled { + logger.Info("Packages isn't enabled (skipped)") + return nil + } if err := commonCheckStorage(ctx, logger, autofix, &commonStorageCheckOptions{ storer: storage.Packages,