diff options
author | spf13 <[email protected]> | 2014-02-01 12:50:17 -0500 |
---|---|---|
committer | spf13 <[email protected]> | 2014-02-01 12:50:17 -0500 |
commit | ae9cc09b0484d67bde1660cc3e12fb957e628217 (patch) | |
tree | 94028ea833cfb69c74cde7e3b358aba6ce792947 /commands/check.go | |
parent | c1b9380dfd35632577fc6960cde316af203e32df (diff) | |
download | hugo-ae9cc09b0484d67bde1660cc3e12fb957e628217.tar.gz hugo-ae9cc09b0484d67bde1660cc3e12fb957e628217.zip |
Adding the ability to check the system limit on open files (important for watching large sites)
Diffstat (limited to 'commands/check.go')
-rw-r--r-- | commands/check.go | 54 |
1 files changed, 44 insertions, 10 deletions
diff --git a/commands/check.go b/commands/check.go index 6ce8b8177..8430f4cc2 100644 --- a/commands/check.go +++ b/commands/check.go @@ -14,18 +14,52 @@ package commands import ( - "github.com/spf13/cobra" - "github.com/spf13/hugo/hugolib" + "fmt" + "github.com/spf13/cobra" + "github.com/spf13/hugo/hugolib" + "syscall" ) +func init() { + check.AddCommand(limit) +} + var check = &cobra.Command{ - Use: "check", - Short: "Check content in the source directory", - Long: `Hugo will perform some basic analysis on the + Use: "check", + Short: "Check content in the source directory", + Long: `Hugo will perform some basic analysis on the content provided and will give feedback.`, - Run: func(cmd *cobra.Command, args []string) { - InitializeConfig() - site := hugolib.Site{Config: *Config} - site.Analyze() - }, + Run: func(cmd *cobra.Command, args []string) { + InitializeConfig() + site := hugolib.Site{Config: *Config} + site.Analyze() + }, +} + +var limit = &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`, + Run: func(cmd *cobra.Command, args []string) { + var rLimit syscall.Rlimit + err := syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit) + if err != nil { + fmt.Println("Error Getting Rlimit ", err) + } + fmt.Println("Current rLimit:", rLimit) + + fmt.Println("Attempting to increase limit") + rLimit.Max = 999999 + rLimit.Cur = 999999 + err = syscall.Setrlimit(syscall.RLIMIT_NOFILE, &rLimit) + if err != nil { + fmt.Println("Error Setting rLimit ", err) + } + err = syscall.Getrlimit(syscall.RLIMIT_NOFILE, &rLimit) + if err != nil { + fmt.Println("Error Getting rLimit ", err) + } + fmt.Println("rLimit after change:", rLimit) + }, } |