Merge pull request #257 from rjeczalik/default_goos

gddo-server: add -default_goos flag
diff --git a/doc/builder.go b/doc/builder.go
index 257162b..d0e658b 100644
--- a/doc/builder.go
+++ b/doc/builder.go
@@ -458,6 +458,29 @@
 	{"windows", "amd64"},
 }
 
+// SetDefaultGOOS sets given GOOS value as default one to use when building
+// package documents.
+func SetDefaultGOOS(goos string) {
+	if goos == "" {
+		return
+	}
+	var i int
+	for ; i < len(goEnvs); i++ {
+		if goEnvs[i].GOOS == goos {
+			break
+		}
+	}
+	switch i {
+	case 0:
+		return
+	case len(goEnvs):
+		env := goEnvs[0]
+		env.GOOS = goos
+		goEnvs = append(goEnvs, env)
+	}
+	goEnvs[0], goEnvs[i] = goEnvs[i], goEnvs[0]
+}
+
 func newPackage(dir *gosrc.Directory) (*Package, error) {
 
 	pkg := &Package{
diff --git a/gddo-server/main.go b/gddo-server/main.go
index a3c7913..486addd 100644
--- a/gddo-server/main.go
+++ b/gddo-server/main.go
@@ -791,19 +791,21 @@
 )
 
 var (
-	robot             = flag.Float64("robot", 100, "Request counter threshold for robots")
+	robot             = flag.Float64("robot", 100, "Request counter threshold for robots.")
 	assetsDir         = flag.String("assets", filepath.Join(defaultBase("github.com/golang/gddo/gddo-server"), "assets"), "Base directory for templates and static files.")
 	getTimeout        = flag.Duration("get_timeout", 8*time.Second, "Time to wait for package update from the VCS.")
 	firstGetTimeout   = flag.Duration("first_get_timeout", 5*time.Second, "Time to wait for first fetch of package from the VCS.")
 	maxAge            = flag.Duration("max_age", 24*time.Hour, "Update package documents older than this age.")
-	httpAddr          = flag.String("http", ":8080", "Listen for HTTP connections on this address")
+	httpAddr          = flag.String("http", ":8080", "Listen for HTTP connections on this address.")
 	sidebarEnabled    = flag.Bool("sidebar", false, "Enable package page sidebar.")
+	defaultGOOS       = flag.String("default_goos", "", "Default GOOS to use when building package documents.")
 	gitHubCredentials = ""
 	userAgent         = ""
 )
 
 func main() {
 	flag.Parse()
+	doc.SetDefaultGOOS(*defaultGOOS)
 	log.Printf("Starting server, os.Args=%s", strings.Join(os.Args, " "))
 
 	if err := parseHTMLTemplates([][]string{