commands: Make more commands non-global

See #4598
This commit is contained in:
Bjørn Erik Pedersen 2018-04-09 18:38:21 +02:00
parent fdf1d94ebc
commit 7bc5e89fba
No known key found for this signature in database
GPG key ID: 330E6E2BD4859D8F
4 changed files with 63 additions and 35 deletions

View file

@ -25,10 +25,6 @@ import (
var _ cmder = (*benchmarkCmd)(nil)
type cmder interface {
getCommand() *cobra.Command
}
type benchmarkCmd struct {
benchmarkTimes int
cpuProfileFile string
@ -37,6 +33,10 @@ type benchmarkCmd struct {
cmd *cobra.Command
}
type cmder interface {
getCommand() *cobra.Command
}
func (c *benchmarkCmd) getCommand() *cobra.Command {
return c.cmd
}

View file

@ -17,7 +17,20 @@ import (
"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
}

View file

@ -197,7 +197,7 @@ func AddCommands() {
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)

View file

@ -33,39 +33,54 @@ import (
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() {