func isRoot(path string) bool {
	_, err := os.Stat(filepath.Join(path, "content", "welcome.article"))
	if err == nil {
		_, err = os.Stat(filepath.Join(path, "template", "index.tmpl"))
	}
	return err == nil
}
isRoot reports whether path is the root directory of the tour tree.
To be the root, it must have content and template subdirectories.
package main
import (
	"flag"
	"fmt"
	"go/build"
	"html/template"
	"io"
	"log"
	"net"
	"net/http"
	"net/url"
	"os"
	"os/exec"
	"path/filepath"
	"runtime"
	"strings"
	"time"
	"golang.org/x/tools/playground/socket"
	_ "golang.org/x/tour/pic"
	_ "golang.org/x/tour/tree"
	_ "golang.org/x/tour/wc"
)
const (
	basePkg    = "github.com/golangbr/go-tour-br/"
	socketPath = "/socket"
)
var (
	httpListen  = flag.String("http", "127.0.0.1:3999", "host:port to listen on")
	openBrowser = flag.Bool("openbrowser", true, "open browser automatically")
)
var (
	gopath = os.Getenv("GOPATH")
	httpAddr string
)