]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
commands: Print the "deploy not available" error message even if flags provided
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 5 Nov 2024 08:14:19 +0000 (09:14 +0100)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Tue, 5 Nov 2024 10:40:42 +0000 (11:40 +0100)
Fixes #13012

commands/deploy.go
commands/deploy_flags.go [new file with mode: 0644]
commands/deploy_off.go
main_withdeploy_off_test.go [new file with mode: 0644]
testscripts/withdeploy-off/deploy_off.txt [new file with mode: 0644]

index f9c22be48f258cf4504956a22f96528b724ac12f..eb419dabaf86980e83fb05cb17119f0038f8e0c3 100644 (file)
@@ -20,7 +20,6 @@ import (
        "context"
 
        "github.com/gohugoio/hugo/deploy"
-       "github.com/gohugoio/hugo/deploy/deployconfig"
 
        "github.com/bep/simplecobra"
        "github.com/spf13/cobra"
@@ -47,17 +46,7 @@ documentation.
                        return deployer.Deploy(ctx)
                },
                withc: func(cmd *cobra.Command, r *rootCommand) {
-                       cmd.ValidArgsFunction = cobra.NoFileCompletions
-                       cmd.Flags().String("target", "", "target deployment from deployments section in config file; defaults to the first one")
-                       _ = cmd.RegisterFlagCompletionFunc("target", cobra.NoFileCompletions)
-                       cmd.Flags().Bool("confirm", false, "ask for confirmation before making changes to the target")
-                       cmd.Flags().Bool("dryRun", false, "dry run")
-                       cmd.Flags().Bool("force", false, "force upload of all files")
-                       cmd.Flags().Bool("invalidateCDN", deployconfig.DefaultConfig.InvalidateCDN, "invalidate the CDN cache listed in the deployment target")
-                       cmd.Flags().Int("maxDeletes", deployconfig.DefaultConfig.MaxDeletes, "maximum # of files to delete, or -1 to disable")
-                       _ = cmd.RegisterFlagCompletionFunc("maxDeletes", cobra.NoFileCompletions)
-                       cmd.Flags().Int("workers", deployconfig.DefaultConfig.Workers, "number of workers to transfer files. defaults to 10")
-                       _ = cmd.RegisterFlagCompletionFunc("workers", cobra.NoFileCompletions)
+                       applyDeployFlags(cmd, r)
                },
        }
 }
diff --git a/commands/deploy_flags.go b/commands/deploy_flags.go
new file mode 100644 (file)
index 0000000..d432654
--- /dev/null
@@ -0,0 +1,33 @@
+// Copyright 2024 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package commands
+
+import (
+       "github.com/gohugoio/hugo/deploy/deployconfig"
+       "github.com/spf13/cobra"
+)
+
+func applyDeployFlags(cmd *cobra.Command, r *rootCommand) {
+       cmd.ValidArgsFunction = cobra.NoFileCompletions
+       cmd.Flags().String("target", "", "target deployment from deployments section in config file; defaults to the first one")
+       _ = cmd.RegisterFlagCompletionFunc("target", cobra.NoFileCompletions)
+       cmd.Flags().Bool("confirm", false, "ask for confirmation before making changes to the target")
+       cmd.Flags().Bool("dryRun", false, "dry run")
+       cmd.Flags().Bool("force", false, "force upload of all files")
+       cmd.Flags().Bool("invalidateCDN", deployconfig.DefaultConfig.InvalidateCDN, "invalidate the CDN cache listed in the deployment target")
+       cmd.Flags().Int("maxDeletes", deployconfig.DefaultConfig.MaxDeletes, "maximum # of files to delete, or -1 to disable")
+       _ = cmd.RegisterFlagCompletionFunc("maxDeletes", cobra.NoFileCompletions)
+       cmd.Flags().Int("workers", deployconfig.DefaultConfig.Workers, "number of workers to transfer files. defaults to 10")
+       _ = cmd.RegisterFlagCompletionFunc("workers", cobra.NoFileCompletions)
+}
index 7eb6429c51324f9803cec26079df71aa193474ca..32a08da2ecae0c6f682b9388af7d52e68a704bff 100644 (file)
@@ -44,6 +44,7 @@ func newDeployCommand() simplecobra.Commander {
                        return errors.New("deploy not supported in this version of Hugo; install a release with 'withdeploy' in the archive filename or build yourself with the 'withdeploy' build tag. Also see https://github.com/gohugoio/hugo/pull/12995")
                },
                withc: func(cmd *cobra.Command, r *rootCommand) {
+                       applyDeployFlags(cmd, r)
                        cmd.Hidden = true
                },
        }
diff --git a/main_withdeploy_off_test.go b/main_withdeploy_off_test.go
new file mode 100644 (file)
index 0000000..490ccd6
--- /dev/null
@@ -0,0 +1,29 @@
+// Copyright 2024 The Hugo Authors. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+//go:build !withdeploy
+// +build !withdeploy
+
+package main
+
+import (
+       "testing"
+
+       "github.com/rogpeppe/go-internal/testscript"
+)
+
+func TestWithdeploy(t *testing.T) {
+       p := commonTestScriptsParam
+       p.Dir = "testscripts/withdeploy-off"
+       testscript.Run(t, p)
+}
diff --git a/testscripts/withdeploy-off/deploy_off.txt b/testscripts/withdeploy-off/deploy_off.txt
new file mode 100644 (file)
index 0000000..5e6c65d
--- /dev/null
@@ -0,0 +1,3 @@
+! hugo deploy --force
+# Issue 13012
+stderr 'deploy not supported in this version of Hugo'
\ No newline at end of file