diff --git a/028-pointers.go b/027-pointers.go similarity index 100% rename from 028-pointers.go rename to 027-pointers.go diff --git a/029-new.go b/028-new.go similarity index 100% rename from 029-new.go rename to 028-new.go diff --git a/030-structs.go b/029-structs.go similarity index 100% rename from 030-structs.go rename to 029-structs.go diff --git a/031-fields.go b/030-fields.go similarity index 100% rename from 031-fields.go rename to 030-fields.go diff --git a/032-methods.go b/031-methods.go similarity index 100% rename from 032-methods.go rename to 031-methods.go diff --git a/033-embedding.go b/032-embedding.go similarity index 100% rename from 033-embedding.go rename to 032-embedding.go diff --git a/034-interfaces.go b/033-interfaces.go similarity index 100% rename from 034-interfaces.go rename to 033-interfaces.go diff --git a/035-goroutines.go b/034-goroutines.go similarity index 100% rename from 035-goroutines.go rename to 034-goroutines.go diff --git a/036-concurrency.go b/035-concurrency.go similarity index 100% rename from 036-concurrency.go rename to 035-concurrency.go diff --git a/037-channels.go b/036-channels.go similarity index 100% rename from 037-channels.go rename to 036-channels.go diff --git a/038-buffering.go b/037-buffering.go similarity index 100% rename from 038-buffering.go rename to 037-buffering.go diff --git a/039-directions.go b/038-directions.go similarity index 100% rename from 039-directions.go rename to 038-directions.go diff --git a/040-synchronization.go b/039-synchronization.go similarity index 100% rename from 040-synchronization.go rename to 039-synchronization.go diff --git a/041-select.go b/040-select.go similarity index 100% rename from 041-select.go rename to 040-select.go diff --git a/042-timeout.go b/041-timeout.go similarity index 100% rename from 042-timeout.go rename to 041-timeout.go diff --git a/043-string-fns.go b/042-string-fns.go similarity index 100% rename from 043-string-fns.go rename to 042-string-fns.go diff --git a/044-bytes.go b/043-bytes.go similarity index 100% rename from 044-bytes.go rename to 043-bytes.go diff --git a/045-args.go b/044-args.go similarity index 100% rename from 045-args.go rename to 044-args.go diff --git a/046-burstable-rate-limiting.go b/045-burstable-rate-limiting.go similarity index 100% rename from 046-burstable-rate-limiting.go rename to 045-burstable-rate-limiting.go diff --git a/047-dns.go b/046-dns.go similarity index 100% rename from 047-dns.go rename to 046-dns.go diff --git a/048-elapsed.go b/047-elapsed.go similarity index 100% rename from 048-elapsed.go rename to 047-elapsed.go diff --git a/049-email.go b/048-email.go similarity index 100% rename from 049-email.go rename to 048-email.go diff --git a/050-enumerable.go b/049-enumerable.go similarity index 100% rename from 050-enumerable.go rename to 049-enumerable.go diff --git a/051-env.go b/050-env.go similarity index 100% rename from 051-env.go rename to 050-env.go diff --git a/052-epoch.go b/051-epoch.go similarity index 100% rename from 052-epoch.go rename to 051-epoch.go diff --git a/053-errors.go b/052-errors.go similarity index 100% rename from 053-errors.go rename to 052-errors.go diff --git a/054-exec.go b/053-exec.go similarity index 100% rename from 054-exec.go rename to 053-exec.go diff --git a/054-exit.go b/054-exit.go new file mode 100644 index 0000000..ddfad46 --- /dev/null +++ b/054-exit.go @@ -0,0 +1,21 @@ +package main // Use `os.Exit` to immediatly exit with a given + // status. +import "os" + +func main() { + defer println("!") // This `println` will never be reached. + os.Exit(3) +} + +/* +$ go run exit.go // If you run `exit.go` using `go run`, the exit +exit status 3 // will be picked up by `go` and printed. + +$ go build exit.go // By building and executing a binary you can see +$ ./exit // the status in the terminal +$ echo $? +3 +*/ + +// == todo +// discuss building before getting here diff --git a/055-exits.go b/055-exits.go deleted file mode 100644 index 0d37cc9..0000000 --- a/055-exits.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import "os" - -func main() { - os.Exit(3) -} - -// $ go run xx-exit.go -// exit status 3 -// $ go build xx-exit.go -// $ ./xx-exit -// $ echo $? -// 3 diff --git a/056-file-open.go b/055-file-open.go similarity index 100% rename from 056-file-open.go rename to 055-file-open.go diff --git a/057-file-read.go b/056-file-read.go similarity index 100% rename from 057-file-read.go rename to 056-file-read.go diff --git a/058-file-write.go b/057-file-write.go similarity index 100% rename from 058-file-write.go rename to 057-file-write.go diff --git a/059-flags.go b/058-flags.go similarity index 100% rename from 059-flags.go rename to 058-flags.go diff --git a/060-http-client-basic.go b/059-http-client-basic.go similarity index 100% rename from 060-http-client-basic.go rename to 059-http-client-basic.go diff --git a/061-http-client.go b/060-http-client.go similarity index 100% rename from 061-http-client.go rename to 060-http-client.go diff --git a/062-http-server-basic.go b/061-http-server-basic.go similarity index 100% rename from 062-http-server-basic.go rename to 061-http-server-basic.go diff --git a/063-http-server-canonical-host.go b/062-http-server-canonical-host.go similarity index 100% rename from 063-http-server-canonical-host.go rename to 062-http-server-canonical-host.go diff --git a/064-http-server-graceful-shutdown.go b/063-http-server-graceful-shutdown.go similarity index 100% rename from 064-http-server-graceful-shutdown.go rename to 063-http-server-graceful-shutdown.go diff --git a/065-http-server-log.go b/064-http-server-log.go similarity index 100% rename from 065-http-server-log.go rename to 064-http-server-log.go diff --git a/066-http-server-middleware.go b/065-http-server-middleware.go similarity index 100% rename from 066-http-server-middleware.go rename to 065-http-server-middleware.go diff --git a/067-http-server-routing.go b/066-http-server-routing.go similarity index 100% rename from 067-http-server-routing.go rename to 066-http-server-routing.go diff --git a/068-http-server-static-dynamic.go b/067-http-server-static-dynamic.go similarity index 100% rename from 068-http-server-static-dynamic.go rename to 067-http-server-static-dynamic.go diff --git a/069-http-server-static-select.go b/068-http-server-static-select.go similarity index 100% rename from 069-http-server-static-select.go rename to 068-http-server-static-select.go diff --git a/070-http-server-static.go b/069-http-server-static.go similarity index 100% rename from 070-http-server-static.go rename to 069-http-server-static.go diff --git a/071-http-server-status-code.go b/070-http-server-status-code.go similarity index 100% rename from 071-http-server-status-code.go rename to 070-http-server-status-code.go diff --git a/072-http-server.go b/071-http-server.go similarity index 100% rename from 072-http-server.go rename to 071-http-server.go diff --git a/073-https-client.go b/072-https-client.go similarity index 100% rename from 073-https-client.go rename to 072-https-client.go diff --git a/074-https-server.go b/073-https-server.go similarity index 100% rename from 074-https-server.go rename to 073-https-server.go diff --git a/075-json.go b/074-json.go similarity index 100% rename from 075-json.go rename to 074-json.go diff --git a/076-number-parsing.go b/075-number-parsing.go similarity index 100% rename from 076-number-parsing.go rename to 075-number-parsing.go diff --git a/077-postgres.go b/076-postgres.go similarity index 100% rename from 077-postgres.go rename to 076-postgres.go diff --git a/078-rand.go b/077-rand.go similarity index 100% rename from 078-rand.go rename to 077-rand.go diff --git a/079-rate-limiting.go b/078-rate-limiting.go similarity index 100% rename from 079-rate-limiting.go rename to 078-rate-limiting.go diff --git a/080-redis.go b/079-redis.go similarity index 100% rename from 080-redis.go rename to 079-redis.go diff --git a/081-regexs.go b/080-regexs.go similarity index 100% rename from 081-regexs.go rename to 080-regexs.go diff --git a/082-scatter-gather.go b/081-scatter-gather.go similarity index 100% rename from 082-scatter-gather.go rename to 081-scatter-gather.go diff --git a/083-sha1.go b/082-sha1.go similarity index 100% rename from 083-sha1.go rename to 082-sha1.go diff --git a/084-signals.go b/083-signals.go similarity index 100% rename from 084-signals.go rename to 083-signals.go diff --git a/085-sort.go b/084-sort.go similarity index 100% rename from 085-sort.go rename to 084-sort.go diff --git a/086-sortby.go b/085-sortby.go similarity index 100% rename from 086-sortby.go rename to 085-sortby.go diff --git a/087-spawn.go b/086-spawn.go similarity index 100% rename from 087-spawn.go rename to 086-spawn.go diff --git a/088-string-formatting.go b/087-string-formatting.go similarity index 100% rename from 088-string-formatting.go rename to 087-string-formatting.go diff --git a/089-tcp-client.go b/088-tcp-client.go similarity index 100% rename from 089-tcp-client.go rename to 088-tcp-client.go diff --git a/090-tcp-server.go b/089-tcp-server.go similarity index 100% rename from 090-tcp-server.go rename to 089-tcp-server.go diff --git a/091-tickers.go b/090-tickers.go similarity index 100% rename from 091-tickers.go rename to 090-tickers.go diff --git a/092-time.go b/091-time.go similarity index 100% rename from 092-time.go rename to 091-time.go diff --git a/093-timers.go b/092-timers.go similarity index 100% rename from 093-timers.go rename to 092-timers.go diff --git a/094-url.go b/093-url.go similarity index 100% rename from 094-url.go rename to 093-url.go diff --git a/095-users.go b/094-users.go similarity index 100% rename from 095-users.go rename to 094-users.go diff --git a/096-worker-pool.go b/095-worker-pool.go similarity index 100% rename from 096-worker-pool.go rename to 095-worker-pool.go diff --git a/tool/index.txt b/tool/index.txt index 9d90a66..301dcd9 100644 --- a/tool/index.txt +++ b/tool/index.txt @@ -24,7 +24,6 @@ recursion defer panic recover -values pointers new structs @@ -52,7 +51,7 @@ env epoch errors exec -exits +exit file-open file-read file-write diff --git a/tool/renumber.go b/tool/renumber.go index 2b6ac10..c62f756 100644 --- a/tool/renumber.go +++ b/tool/renumber.go @@ -9,8 +9,16 @@ import ( "strings" "regexp" "os" + "sort" ) +func minInt(a, b int) int { + if (a < b) { + return a + } + return b +} + func main() { // read names of source files sourceNames := make([]string, 0) @@ -33,7 +41,12 @@ func main() { // sanity check two lists if len(sourceNames) != len(indexNames) { - panic("mismatched names") + sort.Strings(sourceNames) + sort.Strings(indexNames) + for i := 0; i < minInt(len(sourceNames), len(indexNames)); i++ { + fmt.Printf("%s %s\n", sourceNames[i], indexNames[i]) + } + os.Exit(1) } // rename some stuff