index.html: srcextract.bin htmlify.bin
awk '/^!/{system(substr($$0,2)); next} {print}' "$$@" < wiki.html > index.html
-test: final.bin get.bin
+test: get.bin
bash ./test.sh
- rm -f final.6 final.bin get.6 get.bin
+ rm -f get.6 get.bin
%.bin: %.$O
$(LD) -o $@ $<
import (
"http"
"flag"
+ "fmt"
"io"
"log"
+ "net"
"os"
"strings"
)
-var post = flag.String("post", "", "urlencoded form data to POST")
+var (
+ post = flag.String("post", "", "urlencoded form data to POST")
+ port = flag.Bool("port", false, "find open port and print to stdout")
+)
func main() {
flag.Parse()
+ if *port {
+ l, err := net.Listen("tcp", "127.0.0.1:0")
+ if err != nil {
+ log.Exit(err)
+ }
+ defer l.Close()
+ fmt.Print(l.Addr().(*net.TCPAddr).Port)
+ return
+ }
url := flag.Arg(0)
if url == "" {
log.Exit("no url supplied")
#!/bin/bash
-./final.bin &
-wiki_pid=$!
+wiki_pid=
cleanup() {
kill $wiki_pid
- rm -f test_*.out Test.txt
+ rm -f test_*.out Test.txt final-test.bin final-test.go
exit ${1:-1}
}
trap cleanup INT
+port=$(./get.bin -port)
+sed s/8080/$port/ < final.go > final-test.go
+gomake final-test.bin || cleanup 1
+./final-test.bin &
+wiki_pid=$!
+
sleep 1
-./get.bin http://localhost:8080/edit/Test > test_edit.out
+./get.bin http://127.0.0.1:$port/edit/Test > test_edit.out
diff -u test_edit.out test_edit.good || cleanup 1
-./get.bin -post=body=some%20content http://localhost:8080/save/Test
+./get.bin -post=body=some%20content http://127.0.0.1:$port/save/Test
diff -u Test.txt test_Test.txt.good || cleanup 1
-./get.bin http://localhost:8080/view/Test > test_view.out
+./get.bin http://127.0.0.1:$port/view/Test > test_view.out
diff -u test_view.out test_view.good || cleanup 1
echo "Passed"