shithub: hugo

Download patch

ref: 627cf26571cbbe7a1a02439a3d7b7b4dce8ad066
parent: 8fae5f0dd68476ae1e58704abccb61a34a2989df
author: spf13 <[email protected]>
date: Thu Jul 18 20:38:24 EDT 2013

Adding proper command line option parsing

--- a/README.md
+++ b/README.md
@@ -168,15 +168,17 @@
 
     $ 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 @@
 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
 
--- a/docs/content/doc/usage.md
+++ b/docs/content/doc/usage.md
@@ -7,15 +7,17 @@
 
     $ 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,7 +37,7 @@
 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
@@ -42,7 +44,7 @@
 
 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
--- a/main.go
+++ b/main.go
@@ -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 @@
 )
 
 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 @@
 func usage() {
 	PrintErr("usage: hugo [flags]", "")
 	flag.PrintDefaults()
-	os.Exit(2)
+	os.Exit(0)
 }
 
 func main() {
@@ -90,7 +90,7 @@
 	if *checkMode {
 		site := hugolib.NewSite(config)
 		site.Analyze()
-		os.Exit(2)
+		os.Exit(0)
 	}
 
 	if *watchMode {