From 50afca7961ed330f1ce107a8c9a4f77c90f720d4 Mon Sep 17 00:00:00 2001 From: Earl Warren Date: Sun, 16 Jun 2024 13:09:52 +0200 Subject: [PATCH] fix(f3): do not run the F3 CLI if F3 is disabled --- cmd/forgejo/f3.go | 7 +++++++ modules/setting/f3.go | 4 ++++ tests/integration/cmd_forgejo_f3_test.go | 3 +++ 3 files changed, 14 insertions(+) diff --git a/cmd/forgejo/f3.go b/cmd/forgejo/f3.go index 574c776ded..5a0d0ac036 100644 --- a/cmd/forgejo/f3.go +++ b/cmd/forgejo/f3.go @@ -6,10 +6,12 @@ package forgejo import ( "context" + "errors" "code.gitea.io/gitea/models" "code.gitea.io/gitea/modules/git" "code.gitea.io/gitea/modules/log" + "code.gitea.io/gitea/modules/setting" "code.gitea.io/gitea/modules/storage" "code.gitea.io/gitea/services/f3/util" @@ -41,6 +43,11 @@ func SubcmdF3Mirror(ctx context.Context) *cli.Command { } func runMirror(ctx context.Context, c *cli.Context, action cli.ActionFunc) error { + setting.LoadF3Setting() + if !setting.F3.Enabled { + return errors.New("F3 is disabled, it is not ready to be used and is only present for development purposes") + } + var cancel context.CancelFunc if !ContextGetNoInit(ctx) { ctx, cancel = installSignals(ctx) diff --git a/modules/setting/f3.go b/modules/setting/f3.go index 8a66d68fc6..8669b70562 100644 --- a/modules/setting/f3.go +++ b/modules/setting/f3.go @@ -15,6 +15,10 @@ var ( } ) +func LoadF3Setting() { + loadF3From(CfgProvider) +} + func loadF3From(rootCfg ConfigProvider) { if err := rootCfg.Section("F3").MapTo(&F3); err != nil { log.Fatal("Failed to map F3 settings: %v", err) diff --git a/tests/integration/cmd_forgejo_f3_test.go b/tests/integration/cmd_forgejo_f3_test.go index 1d932693cf..5dadcef0a2 100644 --- a/tests/integration/cmd_forgejo_f3_test.go +++ b/tests/integration/cmd_forgejo_f3_test.go @@ -10,6 +10,8 @@ import ( "testing" "code.gitea.io/gitea/cmd/forgejo" + "code.gitea.io/gitea/modules/setting" + "code.gitea.io/gitea/modules/test" "code.gitea.io/gitea/services/f3/driver/options" "code.gitea.io/gitea/tests" @@ -56,6 +58,7 @@ func runApp(ctx context.Context, args ...string) (string, error) { func TestF3_CmdMirror_LocalForgejo(t *testing.T) { defer tests.PrepareTestEnv(t)() + defer test.MockVariableValue(&setting.F3.Enabled, true)() ctx := context.Background()