diff options
author | spf13 <steve.francia@gmail.com> | 2013-07-19 00:38:24 -0700 |
---|---|---|
committer | spf13 <steve.francia@gmail.com> | 2013-07-19 00:38:24 -0700 |
commit | 627cf26571cbbe7a1a02439a3d7b7b4dce8ad066 (patch) | |
tree | 7b580f2abcb43ef012bb0c5f0142828100c2b495 | |
parent | 8fae5f0dd68476ae1e58704abccb61a34a2989df (diff) |
Adding proper command line option parsing
-rw-r--r-- | README.md | 33 | ||||
-rw-r--r-- | docs/content/doc/usage.md | 24 | ||||
-rw-r--r-- | main.go | 26 |
3 files changed, 49 insertions, 34 deletions
@@ -168,15 +168,17 @@ Make sure either hugo is in your path or provide a path to it. $ hugo --help usage: hugo [flags] [] - -b="": hostname (and path) to the root eg. http://spf13.com/ - -c="config.json": config file (default is path/config.json) - -d=false: include content marked as draft - -h=false: show this help - -k=false: analyze content and provide feedback - -p="": filesystem path to read files relative from - -w=false: watch filesystem for changes and recreate as needed - -s=false: a (very) simple webserver - -port="1313": port for webserver to run on + -b, --base-url="": hostname (and path) to the root eg. http://spf13.com/ + -d, --build-drafts=false: include content marked as draft + --config="": config file (default is path/config.yaml|json|toml) + -h, --help=false: show this help + --port="1313": port to run web server on, default :1313 + -S, --server=false: run a (very) simple web server + -s, --source="": filesystem path to read files relative from + --uglyurls=false: use /filename.html instead of /filename/ + -v, --verbose=false: verbose output + --version=false: which version of hugo + -w, --watch=false: watch filesystem for changes and recreate as needed The most common use is probably to run hugo with your current directory being the input directory. @@ -192,8 +194,19 @@ immediately, tell Hugo to watch for changes. **It will recreate the site faster than you can tab over to your browser to view the changes.** - $ hugo -p ~/mysite -w + $ hugo --source ~/mysite --watch + Watching for changes. Press ctrl+c to stop + 15 pages created + 0 tags created +Hugo can even run a server and create your site at the same time! + + $hugo --server -ws ~/mysite + Watching for changes. Press ctrl+c to stop + 15 pages created + 0 tags created + Web Server is available at http://localhost:1313 + Press ctrl+c to stop # Layout diff --git a/docs/content/doc/usage.md b/docs/content/doc/usage.md index 772c10394..5cee1ed23 100644 --- a/docs/content/doc/usage.md +++ b/docs/content/doc/usage.md @@ -7,15 +7,17 @@ Make sure either hugo is in your path or provide a path to it. $ hugo --help usage: hugo [flags] [] - -b="": hostname (and path) to the root eg. http://spf13.com/ - -c="config.json": config file (default is path/config.json) - -d=false: include content marked as draft - -h=false: show this help - -k=false: analyze content and provide feedback - -p="": filesystem path to read files relative from - -w=false: watch filesystem for changes and recreate as needed - -s=false: a (very) simple webserver - -port="1313": port for webserver to run on + -b, --base-url="": hostname (and path) to the root eg. http://spf13.com/ + -d, --build-drafts=false: include content marked as draft + --config="": config file (default is path/config.yaml|json|toml) + -h, --help=false: show this help + --port="1313": port to run web server on, default :1313 + -S, --server=false: run a (very) simple web server + -s, --source="": filesystem path to read files relative from + --uglyurls=false: use /filename.html instead of /filename/ + -v, --verbose=false: verbose output + --version=false: which version of hugo + -w, --watch=false: watch filesystem for changes and recreate as needed ## Common Usage Example: @@ -35,14 +37,14 @@ immediately, tell Hugo to watch for changes. recreate the site faster than you can tab over to your browser to view the changes.** - $ hugo -p ~/mysite -w + $ hugo --source ~/mysite --watch Watching for changes. Press ctrl+c to stop 15 pages created 0 tags created Hugo can even run a server and create your site at the same time! - $hugo -p ~/mysite -w -s + $hugo --server -ws ~/mysite Watching for changes. Press ctrl+c to stop 15 pages created 0 tags created @@ -14,9 +14,9 @@ package main import ( - "flag" "fmt" "github.com/howeyc/fsnotify" + flag "github.com/ogier/pflag" "github.com/spf13/hugo/hugolib" "net/http" "os" @@ -27,17 +27,17 @@ import ( ) var ( - baseUrl = flag.String("b", "", "hostname (and path) to the root eg. http://spf13.com/") - cfgfile = flag.String("c", "", "config file (default is path/config.yaml|json|toml)") - checkMode = flag.Bool("k", false, "analyze content and provide feedback") - draft = flag.Bool("d", false, "include content marked as draft") - help = flag.Bool("h", false, "show this help") - path = flag.String("p", "", "filesystem path to read files relative from") - verbose = flag.Bool("v", false, "verbose output") + baseUrl = flag.StringP("base-url", "b", "", "hostname (and path) to the root eg. http://spf13.com/") + cfgfile = flag.String("config", "", "config file (default is path/config.yaml|json|toml)") + checkMode = flag.Bool("check", false, "analyze content and provide feedback") + draft = flag.BoolP("build-drafts", "d", false, "include content marked as draft") + help = flag.BoolP("help", "h", false, "show this help") + path = flag.StringP("source", "s", "", "filesystem path to read files relative from") + verbose = flag.BoolP("verbose", "v", false, "verbose output") version = flag.Bool("version", false, "which version of hugo") - cpuprofile = flag.Int("cpuprofile", 0, "Number of times to create the site and profile it") - watchMode = flag.Bool("w", false, "watch filesystem for changes and recreate as needed") - server = flag.Bool("s", false, "run a (very) simple web server") + cpuprofile = flag.Int("profile", 0, "Number of times to create the site and profile it") + watchMode = flag.BoolP("watch", "w", false, "watch filesystem for changes and recreate as needed") + server = flag.BoolP("server", "S", false, "run a (very) simple web server") port = flag.String("port", "1313", "port to run web server on, default :1313") uglyUrls = flag.Bool("uglyurls", false, "use /filename.html instead of /filename/ ") ) @@ -45,7 +45,7 @@ var ( func usage() { PrintErr("usage: hugo [flags]", "") flag.PrintDefaults() - os.Exit(2) + os.Exit(0) } func main() { @@ -90,7 +90,7 @@ func main() { if *checkMode { site := hugolib.NewSite(config) site.Analyze() - os.Exit(2) + os.Exit(0) } if *watchMode { |