diff options
| -rw-r--r-- | .gitignore | 2 | ||||
| -rw-r--r-- | Makefile | 12 | ||||
| -rw-r--r-- | dumpClient.go | 53 | ||||
| -rw-r--r-- | files/index.html | 200 | ||||
| -rw-r--r-- | files/repo.html | 11 | ||||
| -rw-r--r-- | files/skeleton.v2.css | 418 | ||||
| -rw-r--r-- | https.go | 18 | ||||
| -rw-r--r-- | main.go | 64 | ||||
| -rw-r--r-- | repoHTML.go | 48 |
9 files changed, 826 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6fbd073 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.swp +go.wit.com diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f6626d8 --- /dev/null +++ b/Makefile @@ -0,0 +1,12 @@ +all: + echo "build it!" + go build -v -x + sudo setcap 'cap_net_bind_service=+ep' go.wit.com + ./go.wit.com + # ./myrepos >/tmp/myrepos.stderr 2>&1 + +redomod: + rm -f go.* + GO111MODULE= go mod init + GO111MODULE= go mod tidy + diff --git a/dumpClient.go b/dumpClient.go new file mode 100644 index 0000000..928be49 --- /dev/null +++ b/dumpClient.go @@ -0,0 +1,53 @@ +package main + +import ( +// "fmt" + "log" + "net/http" + "io/ioutil" +) + +func dumpClient(r *http.Request) { + // Basic request information + log.Println("Method:", r.Method) + log.Println("URL:", r.URL) + log.Println("Protocol:", r.Proto) + log.Println("Host:", r.Host) + log.Println("Remote Address:", r.RemoteAddr) + + // Headers + log.Println("Headers:") + for name, values := range r.Header { + for _, value := range values { + log.Println(name, value) + } + } + + // Query parameters + log.Println("Query Parameters:") + for param, values := range r.URL.Query() { + for _, value := range values { + log.Println(param, value) + } + } + + // User-Agent + log.Println("User-Agent:", r.UserAgent()) + + // Content Length + log.Println("Content Length:", r.ContentLength) + + // Cookies + log.Println("Cookies:") + for _, cookie := range r.Cookies() { + log.Println(cookie.Name, cookie.Value) + } + + // Request Body (if applicable) + if r.Body != nil { + body, err := ioutil.ReadAll(r.Body) + if err == nil { + log.Println("Body:", string(body)) + } + } +} diff --git a/files/index.html b/files/index.html new file mode 100644 index 0000000..85aa2a1 --- /dev/null +++ b/files/index.html @@ -0,0 +1,200 @@ +<!DOCTYPE html> +<html> + <head> + <link rel="stylesheet" href="skeleton.v2.css" /> + <style> + #footer { + position: fixed; + padding: 1% 0% 1% 0%; /* top left bottom right */ + bottom: 0; + width: 100%; + /* Height of the footer*/ + height: 40px; + background: lightgrey; + } + </style> + </head> +</html> + <body> + <div class="container"> + <div class="row"> + <table class="u-full-width"> + <thead> + <tr> + <th>Package</th> + <th>go get</th> + <th>Authoritative sources (IPv6 only)</th> + <th>github mirror</th> + <th>Documentation</th> + </tr> + </thead> + <tbody> + + + <tr> <td><h5>log/ (needed for the gui)</h5></td> <td></td> <td></td> <td></td> <td></td> </tr> + <tr> + <td>log</td> + <td> <a href="//go.wit.com/log">go.wit.com/log</a></td> + <td> <a href="//git.wit.org/wit/log">git.wit.org/wit/log</a></td> + <td> <a href="//github.com/wit-go/log">github.com/wit-go/log</a></td> + <td> <a href="//pkg.go.dev/go.wit.com/log"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + + <tr> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> + + <tr> <td><h5>gui/ packages</h5></td> <td></td> <td></td> <td></td> <td></td> </tr> + <tr> + <td>gui/gui</td> + <td> <a href="//go.wit.com/gui/gui">go.wit.com/gui/gui</a></td> + <td> <a href="//git.wit.org/gui/gui">git.wit.org/gui/gui</a></td> + <td> <a href="//github.com/wit-go/gui">github.com/wit-go/gui</a></td> + <td> <a href="//pkg.go.dev/go.wit.com/gui/gui"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + <tr> + <td>gui/widget</td> + <td> <a href="//go.wit.com/gui/widget">go.wit.com/gui/widget</a></td> + <td> <a href="//git.wit.org/gui/widget">git.wit.org/gui/widget</a></td> + <td> <a href="//github.com/wit-go/widget">github.com/wit-go/widget</a></td> + <td> <a href="//pkg.go.dev/go.wit.com/gui/widget"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + <tr> + <td>gui/gadgets</td> + <td> <a href="//go.wit.com/gui/gadgets">go.wit.com/gui/gadgets</a></td> + <td> <a href="//git.wit.org/gui/gadgets">git.wit.org/gui/gadgets</a></td> + <td> <a href="//github.com/wit-go/gadgets">github.com/wit-go/gadgets</a></td> + <td> <a href="//pkg.go.dev/go.wit.com/gui/gadgets"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + <tr> + <td>gui/toolkits</td> + <td> <a href="//go.wit.com/gui/toolkits">go.wit.com/gui/toolkits</a></td> + <td> <a href="//git.wit.org/gui/toolkits">git.wit.org/gui/toolkits</a></td> + <td> <a href="//github.com/wit-go/toolkits">github.com/wit-go/toolkits</a></td> + <td> <a href="//pkg.go.dev/go.wit.com/gui/toolkits"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + <tr> + <td>gui/debugger</td> + <td> <a href="//go.wit.com/gui/debugger">go.wit.com/gui/debugger</a></td> + <td> <a href="//git.wit.org/gui/debugger">git.wit.org/gui/debugger</a></td> + <td> <a href="//github.com/wit-go/debugger">github.com/wit-go/debugger</a></td> + <td> <a href="//pkg.go.dev/go.wit.com/gui/debugger"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + <tr> + <td>gui/examples</td> + <td> <a href="//go.wit.com/gui/examples">go.wit.com/gui/examples</a></td> + <td> <a href="//git.wit.org/gui/examples">git.wit.org/gui/examples</a></td> + <td> <a href="//github.com/wit-go/examples">github.com/wit-go/examples</a></td> + <td> </td> + </tr> + <tr> + <td>gui/digitalocean</td> + <td> <a href="//go.wit.com/gui/digitalocean">go.wit.com/gui/digitalocean</a></td> + <td> <a href="//git.wit.org/gui/digitalocean">git.wit.org/gui/digitalocean</a></td> + <td> </td> + <td> <a href="//pkg.go.dev/go.wit.com/gui/digitalocean"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + <tr> + <td>gui/cloudflare</td> + <td> <a href="//go.wit.com/gui/cloudflare">go.wit.com/gui/cloudflare</a></td> + <td> <a href="//git.wit.org/gui/cloudflare">git.wit.org/gui/cloudflare</a></td> + <td> </td> + <td> <a href="//pkg.go.dev/go.wit.com/gui/cloudflare"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + + <tr> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> + <tr> <td><h5>Applications</h5></td> <td></td> <td></td> <td></td> <td></td> </tr> + <tr> + <td>control-panel-dns</td> + <td> <a href="//go.wit.com/apps/control-panel-dns">go.wit.com/apps/control-panel-dns</a></td> + <td> <a href="//git.wit.org/jcarr/control-panel-dns">git.wit.org/jcarr/control-panel-dns</a></td> + <td></td> + <td> <a href="//pkg.go.dev/go.wit.com/apps/control-panels-dns"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + <tr> + <td>control-panel-digitalocean</td> + <td> <a href="//go.wit.com/apps/control-panel-digitalocean">go.wit.com/apps/control-panel-digitalocean</a></td> + <td> <a href="//git.wit.org/wit/control-panel-digitalocean">git.wit.org/wit/control-panel-digitalocean</a></td> + <td></td> + <td> <a href="//pkg.go.dev/go.wit.com/apps/control-panel-digitalocean"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + <tr> + <td>control-panel-cloudflare</td> + <td> <a href="//go.wit.com/apps/control-panel-cloudflare">go.wit.com/apps/control-panel-cloudflare</a></td> + <td> <a href="//git.wit.org/wit/control-panel-cloudflare">git.wit.org/wit/control-panel-cloudflare</a></td> + <td></td> + <td> <a href="//pkg.go.dev/go.wit.com/control-panels/cloudflare"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + +<!-- + <tr> + <td>control-panel-cloudflare</td> + <td> <a href="//go.wit.com/control-panel-cloudflare">go.wit.com/control-panel-cloudflare</a></td> + <td> <a href="//git.wit.org/wit/control-panel-cloudflare">git.wit.org/wit/control-panel-cloudflare</a></td> + <td> <a href="//github.com/wit-go/control-panel-cloudflare">github.com/wit-go/control-panel-cloudflare</a></td> + <td> <a href="//pkg.go.dev/go.wit.com/control-panel-cloudflare"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> +--> + + <tr> <td></td> <td></td> <td></td> <td></td> <td></td> </tr> + <tr> <td><h5>Support packages</h5></td> <td></td> <td></td> <td></td> <td></td> </tr> + <!-- + <tr> + <td>go-arg</td> + <td> <a href="//go.wit.com/arg">go.wit.com/arg</a></td> + <td> <a href="//git.wit.org/gui/arg">git.wit.org/gui/arg</a></td> + <td> <a href="//github.com/wit-go/shell">github.com/alexflint/go-arg</a></td> + <td> <a href="//pkg.go.dev/go.wit.com/shell"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + --> + <tr> + <td>arg</td> + <td> <a href="//go.wit.com/arg">go.wit.com/arg</a></td> + <td> <a href="//git.wit.org/wit/arg">git.wit.org/wit/arg</a></td> + <td> <a href="//github.com/wit-go/go-arg">github.com/wit-go/go-arg</a></td> + <td> <a href="//pkg.go.dev/go.wit.com/arg"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + <tr> + <td>spew</td> + <td> <a href="//go.wit.com/spew">go.wit.com/spew</a></td> + <td> <a href="//git.wit.org/wit/spew">git.wit.org/wit/spew</a></td> + <td> <a href="//github.com/wit-go/spew">github.com/wit-go/spew</a></td> + <td> <a href="//pkg.go.dev/go.wit.com/spew"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + <tr> + <td>dnssec</td> + <td> <a href="//go.wit.com/dnssec">go.wit.com/dnssec</a></td> + <td> <a href="//git.wit.org/wit/dnssec">git.wit.org/wit/dnssec</a></td> + <td> <a href="//github.com/wit-go/dnssec">github.com/wit-go/dnssec</a></td> + <td> <a href="//pkg.go.dev/go.wit.com/dnssec"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + + <tr> + <td>shell</td> + <td> <a href="//go.wit.com/shell">go.wit.com/shell</a></td> + <td> <a href="//git.wit.org/wit/shell">git.wit.org/wit/shell</a></td> + <td> <a href="//github.com/wit-go/shell">github.com/wit-go/shell</a></td> + <td> <a href="//pkg.go.dev/go.wit.com/shell"> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> + +<!-- + <tr> + <td></td> + <td> <a href=""></a> </td> + <td> <a href=""> <img src="goReference.svg" alt="Go Reference" /> </a> </td> + </tr> +--> + + + </tbody> + </table> + </div> + </div> + <!-- + <center> + <div id="footer"> + simple go git repo list like <a href=http://go.uber.org/>go.uber.org</a><p> + </div> + </center> + --> + + </body> +</html> diff --git a/files/repo.html b/files/repo.html new file mode 100644 index 0000000..c9b9f10 --- /dev/null +++ b/files/repo.html @@ -0,0 +1,11 @@ +<!DOCTYPE html> +<html> + <head> + <meta name="go-import" content="go.wit.com/gui/gui git https://git.wit.org/gui/gui"> + <meta name="go-source" content="go.wit.com/gui/gui https://git.wit.org/gui/gui https://git.wit.org/gui/tree/master{/dir} https://git.wit.org/gui/gui/tree/master{/dir}/{file}#L{line}"> + <meta http-equiv="refresh" content="0; url=https://git.wit.org/gui/gui"> + </head> + <body> + Nothing to see here. Please <a href="https://git.wit.org/gui/gui">move along</a>. + </body> +</html> diff --git a/files/skeleton.v2.css b/files/skeleton.v2.css new file mode 100644 index 0000000..e70350b --- /dev/null +++ b/files/skeleton.v2.css @@ -0,0 +1,418 @@ +/* +* Skeleton V2.0.4 +* Copyright 2014, Dave Gamache +* www.getskeleton.com +* Free to use under the MIT license. +* http://www.opensource.org/licenses/mit-license.php +* 12/29/2014 +*/ + + +/* Table of contents +################################################## +- Grid +- Base Styles +- Typography +- Links +- Buttons +- Forms +- Lists +- Code +- Tables +- Spacing +- Utilities +- Clearing +- Media Queries +*/ + + +/* Grid +################################################## */ +.container { + position: relative; + width: 100%; + max-width: 1600px; + margin: 0 auto; + padding: 0 20px; + box-sizing: border-box; } +.column, +.columns { + width: 100%; + float: left; + box-sizing: border-box; } + +/* For devices larger than 400px */ +@media (min-width: 400px) { + .container { + width: 85%; + padding: 0; } +} + +/* For devices larger than 550px */ +@media (min-width: 550px) { + .container { + width: 80%; } + .column, + .columns { + margin-left: 4%; } + .column:first-child, + .columns:first-child { + margin-left: 0; } + + .one.column, + .one.columns { width: 4.66666666667%; } + .two.columns { width: 13.3333333333%; } + .three.columns { width: 22%; } + .four.columns { width: 30.6666666667%; } + .five.columns { width: 39.3333333333%; } + .six.columns { width: 48%; } + .seven.columns { width: 56.6666666667%; } + .eight.columns { width: 65.3333333333%; } + .nine.columns { width: 74.0%; } + .ten.columns { width: 82.6666666667%; } + .eleven.columns { width: 91.3333333333%; } + .twelve.columns { width: 100%; margin-left: 0; } + + .one-third.column { width: 30.6666666667%; } + .two-thirds.column { width: 65.3333333333%; } + + .one-half.column { width: 48%; } + + /* Offsets */ + .offset-by-one.column, + .offset-by-one.columns { margin-left: 8.66666666667%; } + .offset-by-two.column, + .offset-by-two.columns { margin-left: 17.3333333333%; } + .offset-by-three.column, + .offset-by-three.columns { margin-left: 26%; } + .offset-by-four.column, + .offset-by-four.columns { margin-left: 34.6666666667%; } + .offset-by-five.column, + .offset-by-five.columns { margin-left: 43.3333333333%; } + .offset-by-six.column, + .offset-by-six.columns { margin-left: 52%; } + .offset-by-seven.column, + .offset-by-seven.columns { margin-left: 60.6666666667%; } + .offset-by-eight.column, + .offset-by-eight.columns { margin-left: 69.3333333333%; } + .offset-by-nine.column, + .offset-by-nine.columns { margin-left: 78.0%; } + .offset-by-ten.column, + .offset-by-ten.columns { margin-left: 86.6666666667%; } + .offset-by-eleven.column, + .offset-by-eleven.columns { margin-left: 95.3333333333%; } + + .offset-by-one-third.column, + .offset-by-one-third.columns { margin-left: 34.6666666667%; } + .offset-by-two-thirds.column, + .offset-by-two-thirds.columns { margin-left: 69.3333333333%; } + + .offset-by-one-half.column, + .offset-by-one-half.columns { margin-left: 52%; } + +} + + +/* Base Styles +################################################## */ +/* NOTE +html is set to 62.5% so that all the REM measurements throughout Skeleton +are based on 10px sizing. So basically 1.5rem = 15px :) */ +html { + font-size: 62.5%; } +body { + font-size: 1.5em; /* currently ems cause chrome bug misinterpreting rems on body element */ + line-height: 1.6; + font-weight: 400; + font-family: "Raleway", "HelveticaNeue", "Helvetica Neue", Helvetica, Arial, sans-serif; + color: #222; } + + +/* Typography +################################################## */ +h1, h2, h3, h4, h5, h6 { + margin-top: 0; + margin-bottom: 2rem; + font-weight: 300; } +h1 { font-size: 4.0rem; line-height: 1.2; letter-spacing: -.1rem;} +h2 { font-size: 3.6rem; line-height: 1.25; letter-spacing: -.1rem; } +h3 { font-size: 3.0rem; line-height: 1.3; letter-spacing: -.1rem; } +h4 { font-size: 2.4rem; line-height: 1.35; letter-spacing: -.08rem; } +h5 { font-size: 1.8rem; line-height: 1.5; letter-spacing: -.05rem; } +h6 { font-size: 1.5rem; line-height: 1.6; letter-spacing: 0; } + +/* Larger than phablet */ +@media (min-width: 550px) { + h1 { font-size: 5.0rem; } + h2 { font-size: 4.2rem; } + h3 { font-size: 3.6rem; } + h4 { font-size: 3.0rem; } + h5 { font-size: 2.4rem; } + h6 { font-size: 1.5rem; } +} + +p { + margin-top: 0; } + + +/* Links +################################################## */ +a { + color: #1EAEDB; } +a:hover { + color: #0FA0CE; } + + +/* Buttons +################################################## */ +.button, +button, +input[type="submit"], +input[type="reset"], +input[type="button"] { + display: inline-block; + height: 38px; + padding: 0 30px; + color: #555; + text-align: center; + font-size: 11px; + font-weight: 600; + line-height: 38px; + letter-spacing: .1rem; + text-transform: uppercase; + text-decoration: none; + white-space: nowrap; + background-color: transparent; + border-radius: 4px; + border: 1px solid #bbb; + cursor: pointer; + box-sizing: border-box; } +.button:hover, +button:hover, +input[type="submit"]:hover, +input[type="reset"]:hover, +input[type="button"]:hover, +.button:focus, +button:focus, +input[type="submit"]:focus, +input[type="reset"]:focus, +input[type="button"]:focus { + color: #333; + border-color: #888; + outline: 0; } +.button.button-primary, +button.button-primary, +input[type="submit"].button-primary, +input[type="reset"].button-primary, +input[type="button"].button-primary { + color: #FFF; + background-color: #33C3F0; + border-color: #33C3F0; } +.button.button-primary:hover, +button.button-primary:hover, +input[type="submit"].button-primary:hover, +input[type="reset"].button-primary:hover, +input[type="button"].button-primary:hover, +.button.button-primary:focus, +button.button-primary:focus, +input[type="submit"].button-primary:focus, +input[type="reset"].button-primary:focus, +input[type="button"].button-primary:focus { + color: #FFF; + background-color: #1EAEDB; + border-color: #1EAEDB; } + + +/* Forms +################################################## */ +input[type="email"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea, +select { + height: 38px; + padding: 6px 10px; /* The 6px vertically centers text on FF, ignored by Webkit */ + background-color: #fff; + border: 1px solid #D1D1D1; + border-radius: 4px; + box-shadow: none; + box-sizing: border-box; } +/* Removes awkward default styles on some inputs for iOS */ +input[type="email"], +input[type="number"], +input[type="search"], +input[type="text"], +input[type="tel"], +input[type="url"], +input[type="password"], +textarea { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; } +textarea { + min-height: 65px; + padding-top: 6px; + padding-bottom: 6px; } +input[type="email"]:focus, +input[type="number"]:focus, +input[type="search"]:focus, +input[type="text"]:focus, +input[type="tel"]:focus, +input[type="url"]:focus, +input[type="password"]:focus, +textarea:focus, +select:focus { + border: 1px solid #33C3F0; + outline: 0; } +label, +legend { + display: block; + margin-bottom: .5rem; + font-weight: 600; } +fieldset { + padding: 0; + border-width: 0; } +input[type="checkbox"], +input[type="radio"] { + display: inline; } +label > .label-body { + display: inline-block; + margin-left: .5rem; + font-weight: normal; } + + +/* Lists +################################################## */ +ul { + list-style: circle inside; } +ol { + list-style: decimal inside; } +ol, ul { + padding-left: 0; + margin-top: 0; } +ul ul, +ul ol, +ol ol, +ol ul { + margin: 1.5rem 0 1.5rem 3rem; + font-size: 90%; } +li { + margin-bottom: 1rem; } + + +/* Code +################################################## */ +code { + padding: .2rem .5rem; + margin: 0 .2rem; + font-size: 90%; + white-space: nowrap; + background: #F1F1F1; + border: 1px solid #E1E1E1; + border-radius: 4px; } +pre > code { + display: block; + padding: 1rem 1.5rem; + white-space: pre; } + + +/* Tables +################################################## */ +th, +td { + padding: 12px 15px; + text-align: left; + border-bottom: 1px solid #E1E1E1; } +th:first-child, +td:first-child { + padding-left: 0; } +th:last-child, +td:last-child { + padding-right: 0; } + + +/* Spacing +################################################## */ +button, +.button { + margin-bottom: 1rem; } +input, +textarea, +select, +fieldset { + margin-bottom: 1.5rem; } +pre, +blockquote, +dl, +figure, +table, +p, +ul, +ol, +form { + margin-bottom: 2.5rem; } + + +/* Utilities +################################################## */ +.u-full-width { + width: 100%; + box-sizing: border-box; } +.u-max-full-width { + max-width: 100%; + box-sizing: border-box; } +.u-pull-right { + float: right; } +.u-pull-left { + float: left; } + + +/* Misc +################################################## */ +hr { + margin-top: 3rem; + margin-bottom: 3.5rem; + border-width: 0; + border-top: 1px solid #E1E1E1; } + + +/* Clearing +################################################## */ + +/* Self Clearing Goodness */ +.container:after, +.row:after, +.u-cf { + content: ""; + display: table; + clear: both; } + + +/* Media Queries +################################################## */ +/* +Note: The best way to structure the use of media queries is to create the queries +near the relevant code. For example, if you wanted to change the styles for buttons +on small devices, paste the mobile query code up in the buttons section and style it +there. +*/ + + +/* Larger than mobile */ +@media (min-width: 400px) {} + +/* Larger than phablet (also point when grid becomes active) */ +@media (min-width: 550px) {} + +/* Larger than tablet */ +@media (min-width: 750px) {} + +/* Larger than desktop */ +@media (min-width: 1600px) {} + +/* Larger than Desktop HD */ +@media (min-width: 1600px) {} diff --git a/https.go b/https.go new file mode 100644 index 0000000..33a1099 --- /dev/null +++ b/https.go @@ -0,0 +1,18 @@ +package main + +import ( + "fmt" + "net/http" +) + +func https() { + http.HandleFunc("/", okHandler) + + certPath := "/etc/letsencrypt/live/yourdomain.com/fullchain.pem" + keyPath := "/etc/letsencrypt/live/yourdomain.com/privkey.pem" + + err := http.ListenAndServeTLS(":443", certPath, keyPath, nil) + if err != nil { + fmt.Println("Error starting HTTPS server:", err) + } +} @@ -0,0 +1,64 @@ +package main + +import ( + "fmt" + "log" + "net/http" + "embed" +) + +//go:embed files/* +var htmlFiles embed.FS + +func okHandler(w http.ResponseWriter, r *http.Request) { + dumpClient(r) + var tmp string + tmp = r.URL.String() + if tmp == "/test" { + findFile(w) + return + } + if tmp == "/gui" { + doGui(w, "/gui/gui") + return + } + fmt.Fprintln(w, "OK") +} + +func findFile(w http.ResponseWriter) { + fmt.Fprintln(w, "GOT TEST?") + pfile, err := htmlFiles.ReadFile("files/repo.html") + if (err != nil) { + log.Println("ERROR: err") + // w.Write(pfile) + return + } + + var repohtml string + repohtml = string(pfile) + fmt.Fprintln(w, "GOT GUI?", repohtml) + log.Println("repo.html:", repohtml) + // w.Close() + /* + filename = "/tmp/" + name + ".so" + log.Error(err, "write out file here", name, filename, len(pfile)) + f, _ := os.OpenFile(filename, os.O_WRONLY|os.O_CREATE, 0600) + f.Close() + */ +} + +func main() { + /* + pfile, err := htmlFiles.ReadFile("html/repo.html") + if (err != nil) { + log.Println("ERROR:", err) + // w.Write(pfile) + return + } + */ + http.HandleFunc("/", okHandler) + err := http.ListenAndServe(":80", nil) + if err != nil { + log.Println("Error starting server:", err) + } +} diff --git a/repoHTML.go b/repoHTML.go new file mode 100644 index 0000000..f30fcca --- /dev/null +++ b/repoHTML.go @@ -0,0 +1,48 @@ +package main + +import ( + "fmt" + // "log" + "net/http" +) + + +/* +<!DOCTYPE html> +<html> + <head> + <meta name="go-import" content="go.wit.com/gui/gui git https://git.wit.org/gui/gui"> + <meta name="go-source" content="go.wit.com/gui/gui https://git.wit.org/gui/gui https://git.wit.org/gui/tree/master{/dir} https://git.wit.org/gui/gui/tree/master{/dir}/{file}#L{line}"> + <meta http-equiv="refresh" content="0; url=https://git.wit.org/gui/gui"> + </head> + <body> + Nothing to see here. Please <a href="https://git.wit.org/gui/gui">move along</a>. + </body> +</html> +*/ + +func doGui(w http.ResponseWriter, path string) { + fmt.Fprintln(w, "<!DOCTYPE html>") + fmt.Fprintln(w, "<html>") + fmt.Fprintln(w, "<head>") + // fmt.Fprintln(w, + fmt.Fprintln(w, "<meta name=\"go-import\" content=\"", "go.wit.com/gui/gui", "git", "https://git.wit.org/gui/gui\">") + fmt.Fprintln(w, "<meta name=\"go-source\" content=\"", "go.wit.com/gui/gui", "https://git.wit.org/gui/gui", "https://git.wit.org/gui/tree/master{/dir}", "https://git.wit.org/gui/gui/", "tree/master{/dir}/{file}#L{line}", "\"", ">") + + fmt.Fprintln(w, "<meta http-equiv=\"refresh\" content=\"0; url=", "https://git.wit.org/gui/gui", "\">") + fmt.Fprintln(w, "</head>") + fmt.Fprintln(w, "<body>") + fmt.Fprintln(w, "Nothing to see here. Please <a href=\"https://git.wit.org/gui/gui\">move along</a>.\"") + fmt.Fprintln(w, "</body>") + fmt.Fprintln(w, "</html>") + + /* + var tmp string + tmp = r.URL.String() + if tmp == "/gui" { + findFile(w) + return + } + fmt.Fprintln(w, "OK") + */ +} |
