working build again

This commit is contained in:
Mark McGranaghan 2012-10-07 02:37:31 -04:00
parent f98dba348c
commit f0b976cea1
6 changed files with 74 additions and 38 deletions

View File

@ -1,7 +1,7 @@
<h2>Contents</h2> <h2>Contents</h2>
<ul class="toc"> <ul class="toc">
<li><a href="#009-for">For</a></li> <li><a href="#for">For</a></li>
<li><a href="#023-pointers">Pointers</a></li> <li><a href="#pointers">Pointers</a></li>
<li><a href="#041-worker-pools">Worker Pools</a></li> <li><a href="#worker-pools">Worker Pools</a></li>
</ul> </ul>

View File

@ -37,6 +37,6 @@ func main() {
// The program will wait here until it gets the // The program will wait here until it gets the
// expected signal, and then exit. // expected signal, and then exit.
fmt.Println("awaiting signal") fmt.Println("awaiting signal")
<- done <-done
fmt.Println("exiting") fmt.Println("exiting")
} }

View File

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
exec go run tool/build-html.go exec go run tool/build-html.go $1

View File

@ -171,38 +171,74 @@ func parseAndRenderSegs(sourcePath string) []*seg {
} }
func main() { func main() {
if len(os.Args) != 2 {
panic("Wrong number of args")
}
outF, err := os.Create(os.Args[1])
if err != nil {
panic(err)
}
ensureCache() ensureCache()
fmt.Print(`<!DOCTYPE html> fmt.Fprint(outF,
<html> `<!DOCTYPE html>
<head> <html>
<meta http-eqiv="content-type" content="text/html;charset=utf-8"> <head>
<title>Go by Example</title> <meta http-eqiv="content-type" content="text/html;charset=utf-8">
<link rel=stylesheet href="../style/book.css"> <title>Go by Example</title>
</head> <link rel=stylesheet href="../src/book.css">
<body>`) </head>
chapterPaths := mustGlob("./src/0*") <body>`)
for _, chapterPath := range chapterPaths {
if strings.HasSuffix(chapterPath, ".html") {
} else { indexBytes, err := ioutil.ReadFile("src/index.txt")
fmt.Printf(`<table cellspacing="0" cellpadding="0" id="%s"><tbody>`, chapterPath) if err != nil {
sourcePaths := mustGlob(chapterPath + "/*") panic(err)
for _, sourcePath := range sourcePaths { }
segs := parseAndRenderSegs(sourcePath) indexLines := strings.Split(string(indexBytes), "\n")
for _, seg := range segs { indexNames := make([]string, 0)
codeClasses := "code" for _, indexLine := range indexLines {
if seg.code == "" { if indexLine != "" && !strings.Contains(indexLine, "#") && !strings.Contains(indexLine, "~") {
codeClasses = codeClasses + " empty" indexNames = append(indexNames, indexLine)
}
fmt.Printf(
`<tr>
<td class=docs>%s</td>
<td class="%s">%s</td>
</tr>`, seg.docsRendered, codeClasses, seg.codeRendered)
}
}
fmt.Print(`</tbody></table>`)
} }
} }
fmt.Print(`</body></html>`)
for _, indexName := range indexNames {
fmt.Fprintf(outF, `<div id="%s">`, indexName)
if (indexName == "title") || (indexName == "contents") || (indexName == "introduction") {
sourcePath := "src/" + indexName + "/" + indexName + ".html"
sourceBytes, err := ioutil.ReadFile(sourcePath)
if err != nil {
panic(err)
}
_, err = outF.Write(sourceBytes)
if err != nil {
panic(err)
}
} else {
chapterPath := "src/" + indexName
fmt.Fprintf(outF,
`<table cellspacing="0" cellpadding="0" id="%s"><tbody>`,
chapterPath)
sourcePaths := mustGlob(chapterPath + "/*")
for _, sourcePath := range sourcePaths {
if strings.HasSuffix(sourcePath, ".go") || strings.HasSuffix(sourcePath, ".sh") {
segs := parseAndRenderSegs(sourcePath)
for _, seg := range segs {
codeClasses := "code"
if seg.code == "" {
codeClasses = codeClasses + " empty"
}
fmt.Fprintf(outF,
`<tr>
<td class=docs>%s</td>
<td class="%s">%s</td>
</tr>`,
seg.docsRendered, codeClasses, seg.codeRendered)
}
}
}
fmt.Fprint(outF, `</tbody></table>`)
}
fmt.Fprintf(outF, `</div>`)
}
fmt.Fprint(outF, `</body></html>`)
} }

View File

@ -1,3 +1,3 @@
#!/bin/bash #!/bin/bash
exec prince build/gobyexample.html -o build/gobyexample.pdf exec prince $1 -o $2

View File

@ -3,4 +3,4 @@
set -e set -e
set -o pipefail set -o pipefail
ls tool/src/*.go src/*/*.go | xargs gofmt -tabs=false -tabwidth=4 -w=true ls tool/*.go src/*/*.go | xargs gofmt -tabs=false -tabwidth=4 -w=true