From f6d4cdfb9d40dcb105ff6f9216302e33fbef0d0d Mon Sep 17 00:00:00 2001 From: Christine Dodrill Date: Sat, 25 Jan 2020 14:43:32 -0500 Subject: [PATCH] start gopher support --- cmd/site/gopher.go | 1 + cmd/site/main.go | 22 +++++++++++++++------- go.mod | 3 +++ go.sum | 12 ++++++++++++ 4 files changed, 31 insertions(+), 7 deletions(-) create mode 100644 cmd/site/gopher.go diff --git a/cmd/site/gopher.go b/cmd/site/gopher.go new file mode 100644 index 0000000..06ab7d0 --- /dev/null +++ b/cmd/site/gopher.go @@ -0,0 +1 @@ +package main diff --git a/cmd/site/main.go b/cmd/site/main.go index da0207d..2e76d0a 100644 --- a/cmd/site/main.go +++ b/cmd/site/main.go @@ -2,6 +2,7 @@ package main import ( "context" + "flag" "html/template" "io/ioutil" "net/http" @@ -12,6 +13,7 @@ import ( "christine.website/cmd/site/internal/blog" "christine.website/cmd/site/internal/middleware" "christine.website/jsonfeed" + "github.com/facebookarchive/flagenv" "github.com/gorilla/feeds" "github.com/povilasv/prommod" "github.com/prometheus/client_golang/prometheus" @@ -19,21 +21,25 @@ import ( blackfriday "github.com/russross/blackfriday" "github.com/sebest/xff" "github.com/snabb/sitemap" + "within.website/gopher" "within.website/ln" "within.website/ln/ex" "within.website/ln/opname" ) -var port = os.Getenv("PORT") +var ( + httpPort = flag.String("PORT", "29384", "HTTP port to listen on") + gopherPort = flag.String("GOPHER_PORT", "29385", "Gopher port to listen on") +) func main() { - if port == "" { - port = "29384" - } + flagenv.Parse() + flag.Parse() ctx := ln.WithF(opname.With(context.Background(), "main"), ln.F{ - "port": port, - "git_rev": gitRev, + "port": *httpPort, + "gopher_port": *gopherPort, + "git_rev": gitRev, }) _ = prometheus.Register(prommod.NewCollector("christine")) @@ -50,7 +56,7 @@ func main() { mux.Handle("/", s) ln.Log(ctx, ln.Action("http_listening")) - ln.FatalErr(ctx, http.ListenAndServe(":"+port, mux)) + ln.FatalErr(ctx, http.ListenAndServe(":"+*httpPort, mux)) } // Site is the parent object for https://christine.website's backend. @@ -65,6 +71,7 @@ type Site struct { jsonFeed *jsonfeed.Feed mux *http.ServeMux + gmux *gopher.ServeMux xffmw *xff.XFF } @@ -142,6 +149,7 @@ func Build() (*Site, error) { }, }, mux: http.NewServeMux(), + gmux: gopher.NewServeMux(), xffmw: xffmw, } diff --git a/go.mod b/go.mod index c9ee30a..f4f918f 100644 --- a/go.mod +++ b/go.mod @@ -2,9 +2,11 @@ module christine.website require ( github.com/celrenheit/sandflake v0.0.0-20190410195419-50a943690bc2 + github.com/facebookarchive/flagenv v0.0.0-20160425205200-fcd59fca7456 github.com/gorilla/feeds v1.1.1 github.com/kr/pretty v0.1.0 // indirect github.com/povilasv/prommod v0.0.12 + github.com/prologic/go-gopher v0.0.0-20191226035442-664dbdb49f44 github.com/prometheus/client_golang v1.3.0 github.com/russross/blackfriday v2.0.0+incompatible github.com/sebest/xff v0.0.0-20160910043805-6c115e0ffa35 @@ -13,6 +15,7 @@ require ( github.com/stretchr/testify v1.4.0 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect gopkg.in/yaml.v2 v2.2.7 + within.website/gopher v0.0.0-20190609010210-2bdce020909a within.website/ln v0.7.0 ) diff --git a/go.sum b/go.sum index b3d2845..dc6185d 100644 --- a/go.sum +++ b/go.sum @@ -11,10 +11,13 @@ github.com/celrenheit/sandflake v0.0.0-20190410195419-50a943690bc2 h1:/BpnZPo/sk github.com/celrenheit/sandflake v0.0.0-20190410195419-50a943690bc2/go.mod h1:7L8gY0+4GYeBc9TvqVuDUq7tXuM6Sj7llnt7HkVwWlQ= github.com/cespare/xxhash/v2 v2.1.0 h1:yTUvW7Vhb89inJ+8irsUqiWjh8iT6sQPZiQzI6ReGkA= github.com/cespare/xxhash/v2 v2.1.0/go.mod h1:dgIUBU3pDso/gPgZ1osOZ0iQf77oPR28Tjxl5dIMyVM= +github.com/cespare/xxhash/v2 v2.1.1 h1:6MnRN8NT7+YBpUIWxHtefFZOKTAPgGjpQSxqLNn0+qY= github.com/cespare/xxhash/v2 v2.1.1/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/facebookarchive/flagenv v0.0.0-20160425205200-fcd59fca7456 h1:1NzATV1A9LeTWAuAJGd7vE/wYSO08EJQTrwKcBBR6Cw= +github.com/facebookarchive/flagenv v0.0.0-20160425205200-fcd59fca7456/go.mod h1:Lbo+w7sC1xznzryrqUDoBBT2nLKV9JnDOzdiVMHYX/8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-kit/kit v0.9.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= @@ -57,6 +60,9 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/povilasv/prommod v0.0.12 h1:0bk9QJ7kD6SmSsk9MeHhz5Qe6OpQl11Fvo7cvvmNUQM= github.com/povilasv/prommod v0.0.12/go.mod h1:GnuK7wLoVBwZXj8bhbJNx/xFSldy7Q49A44RJKNM8XQ= +github.com/prologic/go-gopher v0.0.0-20181230133552-0c68ed5f58b0/go.mod h1:LiuwIXz4es4YIUOD6yRv8mES9n9dFbe4z0+TcrLkhXg= +github.com/prologic/go-gopher v0.0.0-20191226035442-664dbdb49f44 h1:q5sit1FpzEt59aM2Fd2lSBKF+nxcY1o0StRCiJa/pWo= +github.com/prologic/go-gopher v0.0.0-20191226035442-664dbdb49f44/go.mod h1:a97DSBRiRljeRVd5CRZL5bYCIeeGjSEngGf+QMR2evA= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x7enabFceM= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= @@ -69,6 +75,7 @@ github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90 h1:S/YWwWx github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4 h1:gQz4mCbXsO+nc9n1hCxHcGA3Zx3Eo+UHZoInFGUIXNM= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= +github.com/prometheus/client_model v0.1.0 h1:ElTg5tNp4DqfV7UQjDqv2+RJlNzsDtvNAWccbItceIE= github.com/prometheus/client_model v0.1.0/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.4.1 h1:K0MGApIoQvMw27RTdJkPbr3JZ7DNbtxQNyi5STVM6Kw= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= @@ -79,6 +86,7 @@ github.com/prometheus/procfs v0.0.2 h1:6LJUbpNm42llc4HRCuvApCSWB/WfhuNo9K98Q9sNG github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.5 h1:3+auTFlqw+ZaQYJARz6ArODtkaIwtvBTx3N2NehQlL8= github.com/prometheus/procfs v0.0.5/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= +github.com/prometheus/procfs v0.0.8 h1:+fpWZdT24pJBiqJdAwYBjPSk+5YmQzYNPYzQsdzLkt8= github.com/prometheus/procfs v0.0.8/go.mod h1:7Qr8sr6344vo1JqZ6HhLceV9o3AJ1Ff+GxbHq6oeK9A= github.com/russross/blackfriday v2.0.0+incompatible h1:cBXrhZNUf9C+La9/YpS+UHpUT8YD6Td9ZMSU9APFcsk= github.com/russross/blackfriday v2.0.0+incompatible/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g= @@ -104,6 +112,7 @@ golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnf golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/net v0.0.0-20180811021610-c39426892332/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980 h1:dfGZHvZk057jK2MCeWus/TowKpJ8y4AmooUzdBSR9GU= golang.org/x/net v0.0.0-20190613194153-d28f0bde5980/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -131,5 +140,8 @@ gopkg.in/yaml.v2 v2.2.5 h1:ymVxjfMaHvXD8RqPRmzHHsB3VvucivSkIAvJFDI5O3c= gopkg.in/yaml.v2 v2.2.5/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.7 h1:VUgggvou5XRW9mHwD/yXxIYSMtY0zoKQf/v226p2nyo= gopkg.in/yaml.v2 v2.2.7/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +within.website/gopher v0.0.0-20190609010210-2bdce020909a h1:0bWbevqcnfXM9rFHMJGkx9a8Nrc32EEimhMMUMj73Ig= +within.website/gopher v0.0.0-20190609010210-2bdce020909a/go.mod h1:1BDQ4zFvTMoRKeeake4Teckg/Aps56JmwBNHPnP46XE= +within.website/ln v0.6.0/go.mod h1:ifURKqsCJekcsdUE+hyCdcuhQqQ+9v9DfA++ZqYxZFE= within.website/ln v0.7.0 h1:cZUc53cZF/+hWuEAv1VbqlYJ5czuPFHKfH0hLKmlIUA= within.website/ln v0.7.0/go.mod h1:ifURKqsCJekcsdUE+hyCdcuhQqQ+9v9DfA++ZqYxZFE=