1.add login ui 2. init server module

pull/49/head
sunface 4 years ago
parent da00413171
commit 400a884ad5

@ -0,0 +1,4 @@
#################################### Common Configurations##############################
common:
version: 0.1.0
log_level: "info"

@ -27,7 +27,7 @@ const siteConfig = {
}, },
seo: { seo: {
title: "im.dev", title: "im.dev",
titleTemplate: "%s - im.dev", titleTemplate: "%s - 我是开发,我为技术代言",
description: description:
"千挑万选,只为把高质量的内容呈现给你。我是开发,我为技术代言", "千挑万选,只为把高质量的内容呈现给你。我是开发,我为技术代言",
siteUrl: "https://im.dev", siteUrl: "https://im.dev",

@ -0,0 +1,10 @@
module github.com/imdotdev/im.dev
go 1.14
require (
github.com/go-stack/stack v1.8.0
github.com/inconshreveable/log15 v0.0.0-20201112154412-8562bdadbbac
github.com/spf13/cobra v1.1.1
gopkg.in/yaml.v2 v2.2.8
)

291
go.sum

@ -0,0 +1,291 @@
cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=
cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU=
cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU=
cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY=
cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc=
cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0=
cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o=
cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE=
cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk=
cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I=
cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw=
dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo=
github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=
github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o=
github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY=
github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8=
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/bketelsen/crypt v0.0.3-0.20200106085610-5cbc8cc4026c/go.mod h1:MKsuJmJgSg28kpZDP6UIiPt0e0Oz0kqKNGyRaWEPv84=
github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=
github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=
github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=
github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=
github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=
github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=
github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=
github.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=
github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk=
github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=
github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=
github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=
github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=
github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=
github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU=
github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs=
github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc=
github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI=
github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg=
github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk=
github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=
github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=
github.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=
github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q=
github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8=
github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4=
github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80=
github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60=
github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM=
github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk=
github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU=
github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU=
github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4=
github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro=
github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90=
github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=
github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ=
github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I=
github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc=
github.com/inconshreveable/log15 v0.0.0-20201112154412-8562bdadbbac h1:n1DqxAo4oWPMvH1+v+DLYlMCecgumhhgnxAPdqDIFHI=
github.com/inconshreveable/log15 v0.0.0-20201112154412-8562bdadbbac/go.mod h1:cOaXtrgN4ScfRrD9Bre7U1thNq5RtJ8ZoP4iXVGRj6o=
github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=
github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=
github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU=
github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU=
github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=
github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
github.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=
github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4=
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI=
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI=
github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg=
github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY=
github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0=
github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=
github.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=
github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=
github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=
github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=
github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=
github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=
github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=
github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=
github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=
github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts=
github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc=
github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc=
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=
github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=
github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=
github.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=
github.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=
github.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=
github.com/spf13/cobra v1.1.1 h1:KfztREH0tPxJJ+geloSLaAkaPkr4ki2Er5quFV1TDo4=
github.com/spf13/cobra v1.1.1/go.mod h1:WnodtKOvamDL/PwE2M4iKs8aMDBZ5Q5klgD3qfVJQMI=
github.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/spf13/viper v1.7.0/go.mod h1:8WkrPz2fc9jxqZNCJI/76HCieCp4Q8HaLFoCha5qpdg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=
github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=
github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=
go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=
go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8=
go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=
go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=
go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8=
golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek=
golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU=
golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=
golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE=
golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o=
golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc=
golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/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-20181201002055-351d144fa1fc/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-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY=
golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=
golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q=
golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc=
golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE=
google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M=
google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg=
google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI=
google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0=
google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=
google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE=
google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc=
google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8=
google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc=
google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=
google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38=
google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=
gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=
gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=

@ -35,7 +35,7 @@ export const Footer = () => (
<Text fontSize="sm" display="flex" alignItems="center" justifyContent="center"> <Text fontSize="sm" display="flex" alignItems="center" justifyContent="center">
<span>Proudly made in </span> <span>Proudly made in </span>
<chakra.span fontSize="24px" ml="2">🇨🇳</chakra.span> <chakra.span fontSize="24px" ml="2">🇨🇳</chakra.span>
<chakra.span ml="2">by codecc.com</chakra.span> <chakra.span ml="2">by im.dev</chakra.span>
</Text> </Text>
<Stack mt={4} direction="row" spacing="12px" justify="center"> <Stack mt={4} direction="row" spacing="12px" justify="center">
{links.map((link) => ( {links.map((link) => (

@ -1,7 +1,7 @@
import { import {
chakra, chakra,
Flex, Flex,
Box, Button,
HStack, HStack,
Icon, Icon,
IconButton, IconButton,
@ -15,16 +15,23 @@ import {
MenuList, MenuList,
MenuItem, MenuItem,
MenuDivider, MenuDivider,
Image Image,
Modal,
ModalOverlay,
ModalContent,
ModalBody,
ModalCloseButton,
Text,
} from "@chakra-ui/react" } from "@chakra-ui/react"
import siteConfig from "configs/site-config" import siteConfig from "configs/site-config"
import { useViewportScroll } from "framer-motion" import { useViewportScroll } from "framer-motion"
import NextLink from "next/link" import NextLink from "next/link"
import React from "react" import React from "react"
import { FaMoon, FaSun, FaUserAlt, FaRegSun, FaSignOutAlt, FaRegBookmark, FaChartBar, FaHome } from "react-icons/fa" import { FaMoon, FaSun, FaUserAlt, FaRegSun, FaSignOutAlt, FaRegBookmark, FaChartBar, FaHome, FaArrowRight, FaGithub } from "react-icons/fa"
import Logo, { LogoIcon } from "src/components/logo" import Logo, { LogoIcon } from "src/components/logo"
import { MobileNavButton, MobileNavContent } from "./mobile-nav" import { MobileNavButton, MobileNavContent } from "./mobile-nav"
import AlgoliaSearch from "src/components/search/algolia-search" import AlgoliaSearch from "src/components/search/algolia-search"
import useLogin from "hooks/use-login"
const DiscordIcon = (props) => ( const DiscordIcon = (props) => (
@ -49,6 +56,9 @@ const GithubIcon = (props) => (
function HeaderContent() { function HeaderContent() {
const mobileNav = useDisclosure() const mobileNav = useDisclosure()
const [login,_] = useLogin()
const { isOpen: isLoginOpen, onOpen: onLoginOpen, onClose: onLoginClose } = useDisclosure()
const { toggleColorMode: toggleMode } = useColorMode() const { toggleColorMode: toggleMode } = useColorMode()
const text = useColorModeValue("dark", "light") const text = useColorModeValue("dark", "light")
const SwitchIcon = useColorModeValue(FaMoon, FaSun) const SwitchIcon = useColorModeValue(FaMoon, FaSun)
@ -63,23 +73,27 @@ function HeaderContent() {
<Flex w="100%" h="100%" align="center" justify="space-between" px={{ base: "4", md: "6" }}> <Flex w="100%" h="100%" align="center" justify="space-between" px={{ base: "4", md: "6" }}>
<Flex align="center"> <Flex align="center">
<NextLink href="/" passHref> <NextLink href="/" passHref>
<chakra.a display="block" aria-label="Chakra UI, Back to homepage"> <chakra.a display={{ base: "none", md: "block" }} style={{marginTop: '-5px'}} aria-label="Chakra UI, Back to homepage">
<Logo display={{ base: "none", md: "block" }} /> <Logo width="114"/>
<Box minW="3rem" display={{ base: "block", md: "none" }}> </chakra.a>
</NextLink>
<NextLink href="/" passHref>
<chakra.a display={{ base: "block", md: "none" }} aria-label="Chakra UI, Back to homepage">
<LogoIcon /> <LogoIcon />
</Box>
</chakra.a> </chakra.a>
</NextLink> </NextLink>
<HStack spacing="5" display={{ base: "none", md: "flex" }} ml="16" fontSize="17px"> <HStack spacing={{base:1, md:3, lg:5}} display={{ base: "none", md: "flex" }} ml={{ base: 1, md: 4, lg: 12 }} fontSize=".95rem" minWidth="250px">
<Link>Home</Link> <Link></Link>
<Link>Tags</Link> <Link></Link>
<Link></Link>
<Link></Link>
</HStack> </HStack>
</Flex> </Flex>
<Flex <Flex
w="100%" w="100%"
maxW="724px" maxW="600px"
align="center" align="center"
color="gray.400" color="gray.400"
> >
@ -110,6 +124,7 @@ function HeaderContent() {
onClick={toggleMode} onClick={toggleMode}
icon={<SwitchIcon />} icon={<SwitchIcon />}
/> />
{login ?
<Menu> <Menu>
<MenuButton <MenuButton
as={IconButton} as={IconButton}
@ -136,7 +151,17 @@ function HeaderContent() {
<MenuItem icon={<FaRegSun fontSize="16" />}>Account Settings</MenuItem> <MenuItem icon={<FaRegSun fontSize="16" />}>Account Settings</MenuItem>
<MenuItem icon={<FaSignOutAlt fontSize="16" />}>Log out</MenuItem> <MenuItem icon={<FaSignOutAlt fontSize="16" />}>Log out</MenuItem>
</MenuList> </MenuList>
</Menu> </Menu> :
<Button
as="a"
ml="2"
colorScheme="teal"
fontSize=".8rem"
onClick={onLoginOpen}
>
</Button>
}
<MobileNavButton <MobileNavButton
ref={mobileNavBtnRef} ref={mobileNavBtnRef}
aria-label="Open Menu" aria-label="Open Menu"
@ -145,6 +170,19 @@ function HeaderContent() {
</Flex> </Flex>
</Flex> </Flex>
<MobileNavContent isOpen={mobileNav.isOpen} onClose={mobileNav.onClose} /> <MobileNavContent isOpen={mobileNav.isOpen} onClose={mobileNav.onClose} />
<Modal isOpen={isLoginOpen} onClose={onLoginClose} autoFocus={false} size="xl" isCentered >
<ModalOverlay />
<ModalContent p="9" pb="0">
<ModalBody textAlign="center" display="flex" alignItems="center" flexDirection="column">
<Logo width="10rem"/>
<Text mt="8" fontSize=".9rem">im.dev</Text>
<Button colorScheme="teal" mt="8" fontSize=".9rem" leftIcon={<FaGithub fontSize="1.0rem"/>}>使github</Button>
<Text mt="6" fontSize=".7rem" opacity={0.7}>im.dev<Link textDecoration="underline"></Link><Link textDecoration="underline"></Link></Text>
<Image src="/pokeman.svg" height="300px"/>
</ModalBody>
</ModalContent>
</Modal>
</> </>
) )
} }
@ -184,3 +222,4 @@ function Header(props) {
} }
export default Header export default Header

@ -47,7 +47,7 @@ function PageContainer(props: PageContainerProps) {
<Box <Box
id="content" id="content"
pt={3} pt={3}
px={5} px={{base:0,md:3}}
mt="4.5rem" mt="4.5rem"
mx="auto" mx="auto"
> >
@ -55,7 +55,7 @@ function PageContainer(props: PageContainerProps) {
{children} {children}
</PageTransition> </PageTransition>
</Box> </Box>
<Footer /> {/* <Footer /> */}
</div> </div>
</Box> </Box>
</Container> </Container>

@ -0,0 +1,21 @@
// Copyright © 2019 NAME HERE <EMAIL ADDRESS>
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package main
import "github.com/imdotdev/im.dev/server/cmd"
func main() {
cmd.Execute()
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 KiB

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 21.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" [
<!ENTITY ns_extend "http://ns.adobe.com/Extensibility/1.0/">
<!ENTITY ns_ai "http://ns.adobe.com/AdobeIllustrator/10.0/">
<!ENTITY ns_graphs "http://ns.adobe.com/Graphs/1.0/">
<!ENTITY ns_vars "http://ns.adobe.com/Variables/1.0/">
<!ENTITY ns_imrep "http://ns.adobe.com/ImageReplacement/1.0/">
<!ENTITY ns_sfw "http://ns.adobe.com/SaveForWeb/1.0/">
<!ENTITY ns_custom "http://ns.adobe.com/GenericCustomNamespace/1.0/">
<!ENTITY ns_adobe_xpath "http://ns.adobe.com/XPath/1.0/">
]>
<svg version="1.1" id="Layer_1" xmlns:x="&ns_extend;" xmlns:i="&ns_ai;" xmlns:graph="&ns_graphs;"
xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 750 750"
style="enable-background:new 0 0 750 750;" xml:space="preserve">
<style type="text/css">
.st0{fill:#FCD20B;}
.st1{fill:#ED1C24;}
.st2{fill:#FFFFFF;}
.st3{fill:#765241;}
</style>
<switch>
<foreignObject requiredExtensions="&ns_ai;" x="0" y="0" width="1" height="1">
<i:pgfRef xlink:href="#adobe_illustrator_pgf">
</i:pgfRef>
</foreignObject>
<g i:extraneous="self">
<g>
<path d="M650.3,297.6c-13.9,13.3-36.1,30.5-50.1,39.3c-15.9,10-37.6,23.1-60.2,35.3c-3.1,1.7-4.3,5.7-2.6,8.7
c8.9,15.5,12.3,33.9,15.7,50.3c1.7,8.1,2.8,16.4,3.4,24.7c0,0,2.4,38.6,4.6,71.9c3.6,3.7,8.7,5.6,15.5,0.3
c14.9-11.7,19-3.9,19-3.9s2.1,1.1,3.7-1.1c1.7-2.2,7.1-3.5,10.6,1.1c3.5,4.7,11.9,0.2,11.9,0.2s4.1-0.6,6.9,7.5
c1.5,4.3,6.5,6.8,10.8,8.1c4.6,1.5,7.9,5.6,8.4,10.5c0.1,1.1,0.2,2.2,0.3,3.3c0.3,4.8,0.6,10.1-1.2,14.6
c-0.7,1.9-1.9,3.4-3.8,4.3c-1,0.5-1.8,0.4-2.9,0.4c-1.1,0-2.2,0-3.4,0c-7.7,0.1-15.3,0-23,0c-4.3,0-8.6,0-12.8,0c-5,0-10,0-15,0
c-5.6,0-11.3,0-16.9,0c-6.2,0-12.5,0-18.7,0c-6.7,0-13.5,0-20.2,0c-7.2,0-14.4,0-21.6,0c-7.6,0-15.1,0-22.7,0
c-7.9,0-15.8,0-23.6,0c-8.1,0-16.2,0-24.4,0c-8.3,0-16.6,0-24.9,0c-8.4,0-16.8,0-25.2,0c-8.4,0-16.9,0-25.3,0
c-8.4,0-16.8,0-25.2,0c-8.3,0-16.6,0-24.9,0c-8.1,0-16.3,0-24.4,0c-7.9,0-15.8,0-23.7,0c-7.6,0-15.2,0-22.8,0
c-7.2,0-14.5,0-21.7,0c-6.8,0-13.6,0-20.4,0c-6.3,0-12.6,0-18.9,0c-5.7,0-11.4,0-17.2,0c-5.1,0-10.2,0-15.2,0
c-4.4,0-8.7,0-13.1,0c-3.6,0-7.2,0-10.8,0c-4.8,0-9.6,0-14.4,0.1c-2.7,0.1-5.8-0.2-7.6-2.4c-1.3-1.7-2-3.8-2.3-5.9
c-0.8-4.8-0.4-9.8,0.1-14.6c0.5-4.8,3.8-9,8.4-10.5c4.3-1.4,9.3-3.8,10.8-8.1c2.8-8,6.9-7.5,6.9-7.5s8.4,4.5,11.9-0.2
c3.5-4.7,9-3.4,10.6-1.1c1.7,2.2,3.7,1.1,3.7,1.1s4.1-7.8,19,3.9c5.2,4.1,9.4,3.9,12.7,2c6.7-21.9,7.9-72.6,8.9-82.3
c2.3-22.2,8.9-47.5,18.6-66.4c0,0,0,0,0-0.1c1.8-3.5,0.5-7.9-3-9.8c-22.2-12.1-43.5-24.9-59.1-34.7c-13.9-8.8-36.2-26-50.1-39.3
c-29-27.7-85.2-107.1-72.2-120.9c0,0,122.2-8.4,240.6,137c5.6,6.9,15.4,9,23.4,5.1c2.8-1.4,5.7-2.7,8.5-4
c19.5-8.4,40.5-13.4,61.7-14.8c24.3-1.6,48.8,1.3,72,8.9c8.4,2.8,16.7,6.2,24.6,10.1c8,4,17.8,1.9,23.5-5
c118.5-145.8,240.9-137.4,240.9-137.4C735.6,190.5,679.3,269.9,650.3,297.6z"/>
<path class="st0" d="M120.5,540.9c2-13.3,7-9.2,10-5.1c1.2,1.7,3.8,1.6,4.9-0.2c7.8-12.7,10.7-6.2,11.5-3.2
c0.2,0.8,0.8,1.4,1.6,1.7l0,0c1,0.3,2,0,2.7-0.8c11-14.2,12.7-3.7,12.9,2.6c0,1.5,1.7,2.3,3,1.5c12.1-8.3,9.2,13.9,9.2,13.9
c6.1,1.1,9.7,7.8,11.5,12.3c0.8,2-0.7,4.1-2.8,4.1h-76.2C98.1,545.9,120.5,540.9,120.5,540.9z M626.8,540.9c-2-13.3-7-9.2-10-5.1
c-1.2,1.7-3.8,1.6-4.9-0.2c-7.8-12.7-10.7-6.2-11.5-3.2c-0.2,0.8-0.8,1.4-1.6,1.7l0,0c-1,0.3-2,0-2.7-0.8
c-11-14.2-12.7-3.7-12.9,2.6c0,1.5-1.7,2.3-3,1.5c-12.1-8.3-9.2,13.9-9.2,13.9c-6.1,1.1-9.7,7.8-11.5,12.3
c-0.8,2,0.7,4.1,2.8,4.1h76.2C649.2,545.9,626.8,540.9,626.8,540.9z M665.1,201.6c-4.1,27.8-13.3,86-37.3,106.2
c-14.3,12-32.7,23.9-46.2,32.4c-7.5,4.7-14.6,10.2-22,15c-4,2.6-8.2,5-12.5,7.1c-3,1.4-9,5.2-12.3,4.3c-1.3-0.3-2.4-1.2-3.5-2
c-1.1-0.8-2.3-1.6-3.6-1.8c-2.3-0.4-3.2,1-3.7,2.9c-0.6,2.4-0.2,5,1,7.2c13.6,24.4,22.7,52,25,79.8c0.9,10.9-0.4,21.7,0.2,32.5
c0.6,10.3,1.5,20.6,3.9,30.6c0.6,2.6,1.3,5.2,2.1,7.7c0.4,1.3,2.2,7.3-0.6,8c-0.5,0.1-1,0-1.4-0.1c-13.1-3.5-24.7-7.3-37.9-1.4
c-8.9,4-13.2,10.6-18.3,18.7c-1.9,3.1-3.6,6.3-5.1,9.6c-0.7,1.7-1.3,3.4-2,5.1c-0.1,0.4-0.8,4.5-0.8,4.5S464,568,458.5,568
c-10.8-0.1-21.6-0.1-32.4-0.1c-5.9,0-11.8-0.1-17.7-0.1l0.8-7.2c0.2,0,0.4,0,0.7,0c8,0,16.9-3,25.2-12.4c0.8-0.9,0.7-2.3-0.2-3.2
c-0.9-0.8-2.3-0.7-3.2,0.2c-18.9,21.6-41.1,5-43.4,3.2c-1.7-1.9-13.3-13.6-37.2,3.5c-6.4,4.6-12.9,6.4-19.1,5.3
c-11.1-2-18.3-12.4-18.4-12.5c-0.7-1-2.1-1.3-3.1-0.6c-1,0.7-1.3,2.1-0.6,3.1c0.3,0.5,8.3,12.1,21.2,14.4c1.5,0.3,3,0.4,4.5,0.4
c0.8,0,1.5,0,2.3-0.1l0.2,5.6c-6.9,0-13.8-0.1-20.8-0.2c-14.7-0.2-29.3-0.5-44-0.7c-5.6-0.1-11.3-0.3-16.8-0.3
c0.3-11.5-7.8-23.9-16.3-30.9c-10.4-8.6-25.5-9.5-38.1-6.4c-2.9,0.7-10.8,5.4-13,2c-1.5-2.4,3.3-6.9,4-9.1
c4.5-14.2,5.3-30.1,6.8-44.8c2-19.7,1.2-39.3,4.7-58.8c1.5-8.3,3.8-16.6,7.2-24.3c1.7-3.9,3.7-7.7,6-11.3c1.9-3,4.3-5.6,6.1-8.7
c1.4-2.2,5.6-11,0.2-11.3c-4.2-0.2-5.2,3.5-12.4,2.6c-8.8-1.1-17.5-6.7-24.7-11.5c-7.2-4.7-13.9-10-21.2-14.6
c-13.5-8.5-36.5-22.5-49.6-35.8c-21-21.4-35.6-96.9-31.8-108c0,0,69.5-1.8,180.2,129.2c5.6,6.6,15,8.6,22.9,4.8
c2.6-1.3,5.3-2.5,8-3.7c18.9-8.1,49.2-14.1,69.7-15.4c23.5-1.6,47.2,1.3,69.6,8.7c8.2,2.7,20.6,8.2,28.3,12
c7.8,3.9,18.4-2.6,23.8-9.3c78.2-97.5,145.6-121.5,170.6-126.8C662.4,193.6,665.8,196.7,665.1,201.6z M305.1,474.6
c0-19.3-15.7-35-35-35c-19.3,0-35,15.7-35,35s15.7,35,35,35C289.4,509.5,305.1,493.9,305.1,474.6z M381.3,495h-8.2h-8.2
c-4,0-6.4,4.4-4.3,7.7l3.8,6.1c4.3,5.8,13,5.8,17.3,0l3.8-6.1C387.7,499.4,385.3,495,381.3,495z M512.6,474.6
c0-19.3-15.7-35-35-35c-19.3,0-35,15.7-35,35s15.7,35,35,35C497,509.5,512.6,493.9,512.6,474.6z"/>
<path class="st1" d="M196.6,567.5c0,0-12.1-9.7-10.8-23.3c0,0,47.5-32.9,63.5,23.4L196.6,567.5z M549.9,567.5
c0,0,12.1-9.7,10.8-23.3c0,0-47.5-32.9-63.5,23.4L549.9,567.5z M404.5,568.5l0.2-4.9c0.1-1.8-1.1-3.3-2.8-3.7
c-4-0.8-11-2.9-14.7-7.7c-5.4-6.9-20.3-7.8-28,0.4c-4.7,5.1-10.1,6.7-13.6,7.2c-2.1,0.3-3.6,2.1-3.6,4.2v4.2L404.5,568.5z"/>
<path class="st2" d="M294.7,463.1c0,8.9-7.2,16-16,16c-8.9,0-16-7.2-16-16c0-8.9,7.2-16,16-16
C287.5,447.1,294.7,454.3,294.7,463.1z M468.1,447.1c-8.9,0-16,7.2-16,16c0,8.9,7.2,16,16,16c8.9,0,16-7.2,16-16
C484.1,454.3,476.9,447.1,468.1,447.1z"/>
<path class="st3" d="M292.5,482.6c0,0.4,0.1,0.9,0.1,1.3c0,11.4-9.2,20.6-20.6,20.6c-10.5,0-19.1-7.8-20.4-17.9
c5.4,1.5,12.1,2.2,19.2,1.7C279.3,487.7,287,485.6,292.5,482.6z M454.2,482.6c0,0.4-0.1,0.9-0.1,1.3c0,11.4,9.2,20.6,20.6,20.6
c10.5,0,19.1-7.8,20.4-17.9c-5.4,1.5-12.1,2.2-19.2,1.7C467.4,487.7,459.7,485.6,454.2,482.6z"/>
</g>
</g>
</switch>
</svg>

After

Width:  |  Height:  |  Size: 6.6 KiB

@ -0,0 +1,64 @@
// Copyright © 2019 NAME HERE <EMAIL ADDRESS>
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package cmd
import (
"fmt"
"os"
"os/signal"
"syscall"
server "github.com/imdotdev/im.dev/server/internal"
"github.com/imdotdev/im.dev/server/pkg/config"
"github.com/imdotdev/im.dev/server/pkg/log"
"github.com/spf13/cobra"
)
// rootCmd represents the base command when called without any subcommands
var rootCmd = &cobra.Command{
Use: "datav",
Short: "",
Long: ``,
// Uncomment the following line if your bare application
// has an action associated with it:
Run: func(cmd *cobra.Command, args []string) {
config.Init("config.yaml")
err := log.InitLogger(config.Data.Common.LogLevel)
if err != nil {
fmt.Println("init logger error", err)
return
}
service := server.New()
err = service.Start()
if err != nil {
return
}
// 等待服务器停止信号
chSig := make(chan os.Signal)
signal.Notify(chSig, syscall.SIGINT, syscall.SIGTERM)
sig := <-chSig
log.RootLogger.Info("server received signal", "signal", sig)
service.Close()
},
}
// Execute adds all child commands to the root command and sets flags appropriately.
// This is called by main.main(). It only needs to happen once to the rootCmd.
func Execute() {
if err := rootCmd.Execute(); err != nil {
os.Exit(1)
}
}

@ -0,0 +1,23 @@
package internal
import "github.com/imdotdev/im.dev/server/pkg/log"
type Server struct {
}
// New ...
func New() *Server {
return &Server{}
}
var logger = log.RootLogger.New("logger", "server")
// Start ...1=
func (s *Server) Start() error {
return nil
}
// Close ...
func (s *Server) Close() error {
return nil
}

@ -0,0 +1,48 @@
package config
import (
"io/ioutil"
"log"
"path/filepath"
"gopkg.in/yaml.v2"
)
// Config ...
type Config struct {
Common struct {
Version string
LogLevel string `yaml:"log_level"`
}
Server struct {
Addr string
}
}
// Data ...
var Data *Config
// Init ...
func Init(path string) {
conf := &Config{}
data, err := ioutil.ReadFile(path)
if err != nil {
log.Fatal("read config error :", err)
}
err = yaml.Unmarshal(data, &conf)
if err != nil {
log.Fatal("yaml decode error :", err)
}
Data = conf
}
func makeAbsolute(path string, root string) string {
if filepath.IsAbs(path) {
return path
}
return filepath.Join(root, path)
}

@ -0,0 +1,28 @@
package log
import (
"github.com/go-stack/stack"
log "github.com/inconshreveable/log15"
)
var RootLogger = log.New()
func InitLogger(level string) error {
l := log.CallerFileHandler(log.StdoutHandler)
lvl, err := log.LvlFromString(level)
if err != nil {
return err
}
RootLogger.SetHandler(log.MultiHandler(
log.LvlFilterHandler(lvl, l),
))
return nil
}
func Stack(skip int) string {
call := stack.Caller(skip)
s := stack.Trace().TrimBelow(call).TrimRuntime()
return s.String()
}

@ -1,73 +1,31 @@
import { chakra, HTMLChakraProps, useColorModeValue } from "@chakra-ui/react" import { HTMLChakraProps, useColorModeValue } from "@chakra-ui/react"
import React from "react" import React from "react"
export const Logo = (props: HTMLChakraProps<"svg">) => { export const Logo = (props) => {
const fill = useColorModeValue("#2D3748", "#fff") const fill = useColorModeValue("#151618", "#fff")
return ( return (
<chakra.svg <>
height="8" <svg viewBox="0 0 114 20" width={props.width} xmlns="http://www.w3.org/2000/svg">
width="auto" \<g fill={fill} fill-rule="evenodd" id="svg_1"><g fill-rule="nonzero" id="svg_2"><path d="M30.6276,9.99306L26.69038,6.0476L28.65797,2.10352L35.05517,8.51411C35.87026,9.33091 35.87026,10.65521 35.05517,11.472L27.18143,19.36223C26.36633,20.17903 25.04481,20.17903 24.22971,19.36223C23.41462,18.54543 23.41462,17.22114 24.22971,16.40434L30.6276,9.99306z" opacity=".56" id="svg_3"></path><path d="M24.23118,0.61615C25.04627,-0.20065 26.36814,-0.20031 27.18323,0.61649L28.65943,2.09578L11.43678,19.3545C10.62168,20.1713 9.29981,20.17096 8.48472,19.35416L7.00852,17.87487L24.23118,0.61615zM16.84984,6.04055L13.89745,8.99913L9.96023,5.05368L5.03889,9.98533L8.9761,13.93078L7.00852,17.87487L0.61132,11.46427C-0.20377,10.64747 -0.20377,9.32318 0.61132,8.50638L8.48472,0.61649C9.29981,-0.20031 10.62168,-0.20065 11.43678,0.61615L16.84984,6.04055z" id="svg_4"></path></g><path d="M69.9619,17.85659 L69.9619,16.278309999999998 L68.34275,16.278309999999998 L68.34275,17.85659 L69.9619,17.85659 zM74.80461,17.95985 C75.58965,17.95985 76.25448,17.76318 76.7991,17.36983 C77.34373,16.97649 77.72398,16.450400000000002 77.93987,15.791549999999999 L77.93987,17.85659 L79.27934,17.85659 L79.27934,6.9413599999999995 L77.93987,6.9413599999999995 L77.93987,11.82371 C77.72398,11.16487 77.34373,10.638770000000001 76.7991,10.24543 S75.58965,9.65542 74.80461,9.65542 C74.08826,9.65542 73.45042,9.82259 72.89108,10.156930000000001 S71.8926,10.97311 71.57368,11.60246 C71.25476,12.23181 71.0953,12.96932 71.0953,13.815010000000001 S71.25476,15.39575 71.57368,16.02018 C71.8926,16.64461 72.33174,17.12399 72.89108,17.45834 S74.08826,17.95985 74.80461,17.95985 zM75.18732,16.77982 C74.36303,16.77982 73.7031,16.51677 73.20755,15.99068 C72.71199,15.46458 72.46421,14.73936 72.46421,13.815010000000001 S72.71199,12.16543 73.20755,11.63933 C73.7031,11.11324 74.36303,10.85019 75.18732,10.85019 C75.71722,10.85019 76.1907,10.97065 76.60775,11.21157 C77.0248,11.4525 77.35109,11.79913 77.5866,12.25147 C77.82211,12.70382 77.93987,13.22499 77.93987,13.815010000000001 S77.82211,14.92374 77.5866,15.37117 C77.35109,15.81859 77.0248,16.165219999999998 76.60775,16.41106 C76.1907,16.6569 75.71722,16.77982 75.18732,16.77982 zM84.99051,17.95985 C85.66761,17.95985 86.27601,17.836930000000002 86.81573,17.59109 C87.35544,17.34525 87.79457,17.00108 88.13312,16.55857 S88.69001,15.61455 88.78814,15.05403 L87.36035,15.05403 C87.26222,15.60471 86.99481,16.04476 86.55814,16.37419 C86.12146,16.703609999999998 85.57929,16.86832 84.93163,16.86832 C84.21528,16.86832 83.60933,16.637230000000002 83.11377,16.175060000000002 S82.35572,15.01962 82.32628,14.09526 L88.78814,14.09526 C88.82739,13.88876 88.84702,13.64292 88.84702,13.35775 C88.84702,12.67923 88.69246,12.05972 88.38335,11.49921 C88.07424,10.93869 87.62775,10.49127 87.04388,10.156930000000001 C86.46001,9.82259 85.77555,9.65542 84.99051,9.65542 C84.21528,9.65542 83.52837,9.82259 82.92978,10.156930000000001 S81.86261,10.97311 81.52407,11.60246 C81.18552,12.23181 81.01624,12.96932 81.01624,13.815010000000001 S81.18552,15.39575 81.52407,16.02018 C81.86261,16.64461 82.33118,17.12399 82.92978,17.45834 S84.21528,17.95985 84.99051,17.95985 zM87.49282,13.44625 L82.32628,13.44625 C82.36553,12.56123 82.63539,11.89009 83.13585,11.43283 C83.63631,10.97557 84.25453,10.74694 84.99051,10.74694 C85.45172,10.74694 85.87859,10.84528 86.27111,11.04195 C86.66363,11.23862 86.97274,11.53854 87.19843,11.94172 C87.42413,12.34489 87.52226,12.8464 87.49282,13.44625 zM94.51403,17.85659 L97.67872,9.75867 L96.23621,9.75867 L93.73389,16.42581 L91.20214,9.75867 L89.75963,9.75867 L92.92432,17.85659 L94.51403,17.85659 z" fill-rule="nonzero" opacity=".56" id="svg_6" stroke-dasharray="none"></path><text fill={fill} stroke="null" stroke-width="0" stroke-opacity="null" fill-opacity="null" x="39.5" y="18.453125" id="svg_7" font-size="25" font-family="sans-serif" text-anchor="start" stroke-dasharray="none">im</text></g>
viewBox="0 0 998 257" </svg>
fill="none" </>
xmlns="http://www.w3.org/2000/svg"
{...props}
>
<path
d="M388.5 115.302c17.612 0 25.466 11.424 28.084 21.658l24.752-9.044c-4.76-18.564-21.896-38.08-53.074-38.08-33.32 0-59.262 25.704-59.262 61.404 0 35.224 25.942 61.642 59.976 61.642 30.464 0 47.838-19.754 53.312-37.842l-24.276-8.806c-2.618 8.806-10.948 21.42-29.036 21.42-17.374 0-32.368-13.09-32.368-36.414s14.994-35.938 31.892-35.938zM484.894 141.244c.476-14.756 8.806-26.18 24.038-26.18 17.374 0 23.8 11.424 23.8 25.704v68.544h27.608v-73.304c0-25.466-13.804-45.934-42.364-45.934-12.138 0-25.228 4.284-33.082 14.518V37h-27.608v172.312h27.608v-68.068zM577.29 177.896c0 18.326 14.994 34.986 39.27 34.986 18.802 0 30.226-9.52 35.7-18.326 0 9.282.952 14.042 1.19 14.756h25.704c-.238-1.19-1.428-8.092-1.428-18.564v-57.596c0-23.086-13.566-43.316-49.266-43.316-28.56 0-46.648 17.85-48.79 37.842l25.228 5.712c1.19-11.662 9.282-20.944 23.8-20.944 15.232 0 21.896 7.854 21.896 17.612 0 4.046-1.904 7.378-8.568 8.33l-29.75 4.522c-19.754 2.856-34.986 14.28-34.986 34.986zm44.506 13.328c-10.948 0-16.898-7.14-16.898-14.994 0-9.52 6.902-14.28 15.47-15.708L650.594 156v5.236c0 22.61-13.328 29.988-28.798 29.988zM810.108 93.406h-36.652l-44.506 46.886V37h-27.37v172.312h27.37v-32.368l14.28-14.994 34.034 47.362h33.796l-48.552-66.878 47.6-49.028zM889.349 92.692c-1.19-.238-4.046-.714-7.378-.714-15.232 0-28.084 7.378-33.558 19.992V93.406h-26.894v115.906h27.608v-55.216c0-21.658 9.758-34.034 31.178-34.034 2.856 0 5.95.238 9.044.714V92.692zM895.968 177.896c0 18.326 14.994 34.986 39.27 34.986 18.802 0 30.226-9.52 35.7-18.326 0 9.282.952 14.042 1.19 14.756h25.704c-.238-1.19-1.428-8.092-1.428-18.564v-57.596c0-23.086-13.566-43.316-49.266-43.316-28.56 0-46.648 17.85-48.79 37.842l25.228 5.712c1.19-11.662 9.282-20.944 23.8-20.944 15.232 0 21.896 7.854 21.896 17.612 0 4.046-1.904 7.378-8.568 8.33l-29.75 4.522c-19.754 2.856-34.986 14.28-34.986 34.986zm44.506 13.328c-10.948 0-16.898-7.14-16.898-14.994 0-9.52 6.902-14.28 15.47-15.708L969.272 156v5.236c0 22.61-13.328 29.988-28.798 29.988z"
fill={fill}
/>
<rect width="257" height="257" rx="128.5" fill="url(#logo)" />
<path
d="M69.558 133.985l87.592-86.9891c1.636-1.6251 4.27.3525 3.165 2.377l-32.601 59.7521c-.728 1.332.237 2.958 1.755 2.958h56.34c1.815 0 2.691 2.223 1.364 3.462l-98.7278 92.142c-1.7702 1.652-4.4051-.676-2.9839-2.636l46.7357-64.473c.958-1.322.014-3.174-1.619-3.174H70.9673c-1.7851 0-2.6759-2.161-1.4093-3.419z"
fill="#fff"
/>
<defs>
<linearGradient
id="logo"
x1="128.5"
x2="128.5"
y2="257"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#7BCBD4" />
<stop offset="1" stopColor="#29C6B7" />
</linearGradient>
</defs>
</chakra.svg>
) )
} }
export const LogoIcon = (props: HTMLChakraProps<"svg">) => { export const LogoIcon = (props: HTMLChakraProps<"svg">) => {
const fill = useColorModeValue("#2D3748", "#fff") const fill = useColorModeValue("#151618", "#fff")
return ( return (
<chakra.svg <>
height="8" <svg height="20" viewBox="0 0 114 20" width="114" xmlns="http://www.w3.org/2000/svg">
width="auto" \<g fill={fill} fill-rule="evenodd" id="svg_1">
viewBox="0 0 257 257" <g fill-rule="nonzero" id="svg_2">
fill="none" <path d="M30.6276,9.99306L26.69038,6.0476L28.65797,2.10352L35.05517,8.51411C35.87026,9.33091 35.87026,10.65521 35.05517,11.472L27.18143,19.36223C26.36633,20.17903 25.04481,20.17903 24.22971,19.36223C23.41462,18.54543 23.41462,17.22114 24.22971,16.40434L30.6276,9.99306z" opacity=".56" id="svg_3"></path>
xmlns="http://www.w3.org/2000/svg" <path d="M24.23118,0.61615C25.04627,-0.20065 26.36814,-0.20031 27.18323,0.61649L28.65943,2.09578L11.43678,19.3545C10.62168,20.1713 9.29981,20.17096 8.48472,19.35416L7.00852,17.87487L24.23118,0.61615zM16.84984,6.04055L13.89745,8.99913L9.96023,5.05368L5.03889,9.98533L8.9761,13.93078L7.00852,17.87487L0.61132,11.46427C-0.20377,10.64747 -0.20377,9.32318 0.61132,8.50638L8.48472,0.61649C9.29981,-0.20031 10.62168,-0.20065 11.43678,0.61615L16.84984,6.04055z" id="svg_4"></path>
{...props} </g>
> </g>
<rect width="257" height="257" rx="128.5" fill="url(#mark)" /> </svg>
<path </>
d="M69.558 133.985l87.592-86.9891c1.636-1.6251 4.27.3525 3.165 2.377l-32.601 59.7521c-.728 1.332.237 2.958 1.755 2.958h56.34c1.815 0 2.691 2.223 1.364 3.462l-98.7278 92.142c-1.7702 1.652-4.4051-.676-2.9839-2.636l46.7357-64.473c.958-1.322.014-3.174-1.619-3.174H70.9673c-1.7851 0-2.6759-2.161-1.4093-3.419z"
fill="#fff"
/>
<defs>
<linearGradient
id="mark"
x1="128.5"
x2="128.5"
y2="257"
gradientUnits="userSpaceOnUse"
>
<stop stopColor="#7BCBD4" />
<stop offset="1" stopColor="#29C6B7" />
</linearGradient>
</defs>
</chakra.svg>
) )
} }

@ -66,7 +66,7 @@ export const SearchButton = React.forwardRef(function SearchButton(
<SearchIcon /> <SearchIcon />
<HStack w="full" ml="3" spacing="4px"> <HStack w="full" ml="3" spacing="4px">
<Text textAlign="left" flex="1"> <Text textAlign="left" flex="1">
Search the docs Search...
</Text> </Text>
<HStack spacing="4px"> <HStack spacing="4px">
<VisuallyHidden>Press </VisuallyHidden> <VisuallyHidden>Press </VisuallyHidden>

@ -0,0 +1,8 @@
import { useEffect, useState } from "react"
const useLogin= () => {
const [login,setLogin] = useState(null)
return [login,setLogin]
}
export default useLogin

@ -0,0 +1,4 @@
export enum ThemeType {
Dark = "dark",
Light = "light"
}
Loading…
Cancel
Save