ref: 7bc5e89fbaa5c613b8853ff7b69fae570bd0b56d
parent: fdf1d94ebc7d1aa4855c62237f2edbd4bdade1a7
author: Bjørn Erik Pedersen <[email protected]>
date: Mon Apr 9 14:38:21 EDT 2018
commands: Make more commands non-global See #4598
--- a/commands/benchmark.go
+++ b/commands/benchmark.go
@@ -25,10 +25,6 @@
var _ cmder = (*benchmarkCmd)(nil)
-type cmder interface {
- getCommand() *cobra.Command
-}
-
type benchmarkCmd struct {
benchmarkTimes int
cpuProfileFile string
@@ -35,6 +31,10 @@
memProfileFile string
cmd *cobra.Command
+}
+
+type cmder interface {
+ getCommand() *cobra.Command
}
func (c *benchmarkCmd) getCommand() *cobra.Command {
--- a/commands/check.go
+++ b/commands/check.go
@@ -17,7 +17,20 @@
"github.com/spf13/cobra"
)
-var checkCmd = &cobra.Command{
- Use: "check",
- Short: "Contains some verification checks",
+var _ cmder = (*checkCmd)(nil)
+
+type checkCmd struct {
+ cmd *cobra.Command
+}
+
+func newCheckCmd() *checkCmd {
+ return &checkCmd{cmd: &cobra.Command{
+ Use: "check",
+ Short: "Contains some verification checks",
+ },
+ }
+}
+
+func (c *checkCmd) getCommand() *cobra.Command {
+ return c.cmd
}
--- a/commands/hugo.go
+++ b/commands/hugo.go
@@ -197,7 +197,7 @@
HugoCmd.AddCommand(versionCmd)
HugoCmd.AddCommand(envCmd)
HugoCmd.AddCommand(configCmd)
- HugoCmd.AddCommand(checkCmd)
+ HugoCmd.AddCommand(newCheckCmd().getCommand())
HugoCmd.AddCommand(newBenchmarkCmd().getCommand())
HugoCmd.AddCommand(convertCmd)
HugoCmd.AddCommand(newCmd)
--- a/commands/limit_darwin.go
+++ b/commands/limit_darwin.go
@@ -33,39 +33,54 @@
jww "github.com/spf13/jwalterweatherman"
)
-func init() {
- checkCmd.AddCommand(limit)
+var _ cmder = (*limitCmd)(nil)
+
+type limitCmd struct {
+ cmd *cobra.Command
}
-var limit = &cobra.Command{
- Use: "ulimit",
- Short: "Check system ulimit settings",
- Long: `Hugo will inspect the current ulimit settings on the system.
+func newLimitCmd() *limitCmd {
+ ccmd := &cobra.Command{
+ Use: "ulimit",
+ Short: "Check system ulimit settings",
+ Long: `Hugo will inspect the current ulimit settings on the system.
This is primarily to ensure that Hugo can watch enough files on some OSs`,
- RunE: func(cmd *cobra.Command, args []string) error {
- var rLimit syscall.Rlimit
- err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
- if err != nil {
- return newSystemError("Error Getting Rlimit ", err)
- }
+ RunE: func(cmd *cobra.Command, args []string) error {
+ var rLimit syscall.Rlimit
+ err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
+ if err != nil {
+ return newSystemError("Error Getting Rlimit ", err)
+ }
- jww.FEEDBACK.Println("Current rLimit:", rLimit)
+ jww.FEEDBACK.Println("Current rLimit:", rLimit)
- jww.FEEDBACK.Println("Attempting to increase limit")
- rLimit.Max = 999999
- rLimit.Cur = 999999
- err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit)
- if err != nil {
- return newSystemError("Error Setting rLimit ", err)
- }
- err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
- if err != nil {
- return newSystemError("Error Getting rLimit ", err)
- }
- jww.FEEDBACK.Println("rLimit after change:", rLimit)
+ jww.FEEDBACK.Println("Attempting to increase limit")
+ rLimit.Max = 999999
+ rLimit.Cur = 999999
+ err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit)
+ if err != nil {
+ return newSystemError("Error Setting rLimit ", err)
+ }
+ err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit)
+ if err != nil {
+ return newSystemError("Error Getting rLimit ", err)
+ }
+ jww.FEEDBACK.Println("rLimit after change:", rLimit)
- return nil
- },
+ return nil
+ },
+ }
+
+ return &limitCmd{cmd: ccmd}
+}
+
+func (c *limitCmd) getCommand() *cobra.Command {
+ return c.cmd
+}
+
+func init() {
+ // TODO(bep) cli refactor
+ //checkCmdOld.AddCommand(limit)
}
func tweakLimit() {