diff options
Diffstat (limited to 'd1pkgweb-query.go')
-rw-r--r-- | d1pkgweb-query.go | 148 |
1 files changed, 23 insertions, 125 deletions
diff --git a/d1pkgweb-query.go b/d1pkgweb-query.go index 72e5ab3..6b2f4b0 100644 --- a/d1pkgweb-query.go +++ b/d1pkgweb-query.go @@ -4,8 +4,8 @@ import ( "bufio" "fmt" "html/template" - "net/http" - "net/http/cgi" + //"net/http" + // "net/http/cgi" "os" "os/exec" "strings" @@ -28,105 +28,19 @@ type ResultPage struct { } var resTempl = ` -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<meta http-equiv="content-type" content="text/html; charset=UTF-8" /> -<link rel="stylesheet" type="text/css" href="/search.css" /> -<title>Devuan Package information</title> -<style type="text/css"> -code {font-weight: normal; - margin: 0 0px; - padding: 0px 0px; - border: 1px solid #ffffff; - font-size: 95%; } -</style> - -<body> - - <div class="nav"> - <div class="leftfl"> - <a href="https://pkginfo.devuan.org" title="Devuan Package Information"> - <span>Home</span></a> - <span class="separator">|</span> - <a href="https://devuan.org" title="Devuan website"> - <span>Devuan</span></a> - <span class="separator">|</span> - <a href="https://git.devuan.org" title="Devuan gitlab"> - <span>Git</span></a> - <span class="separator">|</span> - <a href="https://devuan.org" title="Devuan BTS"> - <span>BTS</span></a> - <span class="separator">|</span> - <a href="https://dev1galaxy.org" title="dev1galaxy forum"> - <span>Forum</span></a> - <span class="separator">|</span> - <a href="https://popcon.devuan.org" title="Popularity Context"> - <span>Popcon</span></a> - </div> - - <div class="rightfl-do"> - <a title="Please support Devuan development" class="button-do" href="https://devuan.org/os/donate">donate now!</a> - </div> - - <div class="rightfl-dl"> - <a title="Download Devuan" class="button-dl" href="https://files.devuan.org/">download</a> - </div> - - </div> - - -<div class="wrap"> - -<h1>Devuan Package information</h1> - - -<form method="GET" action="/cgi-bin/d1pkgweb-query"> -Search Devuan Packages for: <input type="text" name="search"/> in release -<select name="release"> -<option value="jessie">Jessie 1.0.0 (oldstable)</option> -<option value="ascii" selected>Ascii 2.0.0 (stable) </option> -<option value="beowulf" >Beowulf (testing)</option> -<option value="ceres" >Ceres (unstable)</option> -<option value="experimental" >Experimental</option> -<option value="any" >Any</option> -</select> -<input type="submit" value="Go!"/> -</form> - - -<h1>{{.NumResults}} results for <b>"{{.Query}}"</b> in {{.Release}} (in {{.Time}}) </h1> - -<ul class="res_list"> -{{range .Results}} -<li class="res_item"> - <a href="{{.URL}}">[{{.Suite}}] {{.Name}}-{{.Version}}</a> -</li> +i | _) _| Err pkginfo.devuan.org 70 +i __ \ | / _' | | __ \ | _ \ Err pkginfo.devuan.org 70 +i | | < ( | | | | __| ( | Err pkginfo.devuan.org 70 +i .__/ _|\_\ \__, | _| _| _| _| \___/ Err pkginfo.devuan.org 70 +i _| |___/ Err pkginfo.devuan.org 70 +i Err pkginfo.devuan.org 70 +i Devuan Package information Err pkginfo.devuan.org 70 +i Err pkginfo.devuan.org 70 +i {{.NumResults}} results for "{{.Query}}" (in {{.Time}}) Err pkginfo.devuan.org 70 +i -------------------------- Err pkginfo.devuan.org 70 +{{range .Results}} +1 {{.Suite}}] {{.Name}}-{{.Version}} {{URL}} pkginfo.devuan.org 70 {{end}} -</div> - -</div> - - <p style="margin-top:0px; margin-bottom:20px ; text-align: center;"> This site is a cookie-free zone</p> - <div class="foot"> - <p id="copyright" style="white-space: nowrap;"> - Copyright (c) 2014-2018 <a href="https://www.dyne.org" data-rel="fiscal sponsor" - title="Learn about our fiscal sponsor">Dyne.org foundation</a> - <span></span> - <a rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/" - title="This work is licensed under a Creative Commons Attribution-ShareAlike - 4.0 International License.">CC-BY-SA 4.0 international</a></p> - - <p class="trademarks"> - Devuan is a registered trademark of the Dyne.org foundation.</p> - <p class="trademarks" style="margin-top: -15px;"> - Debian is a registered trademark of Software in the Public Interest, Inc. Linux is a registered trademark of Linus Torvalds.</p> - </div> - - -</body> -</html> - ` var releaseMap = map[string]string{ @@ -180,29 +94,20 @@ func pipeComands(commands []*exec.Cmd) ([]byte, error) { } -func getResults(req http.Request) (ResultPage, error) { +func getResults() (ResultPage, error) { var res ResultPage var release string - req.ParseForm() - - searchQuery := req.Form["search"] + searchQuery := os.Getenv("X_GOPHER_SEARCH") if len(searchQuery) < 1 { - printError(503, fmt.Sprintf("Something went wrong in parsing query...\r\n%s\r\n", req.Form)) + printError(503, fmt.Sprintf("Something went wrong in parsing query...\r\n")) os.Exit(0) } - res.Query = searchQuery[0] + res.Query = searchQuery QueryTerms := strings.Split(res.Query, " ") - selectedRelease := req.Form["release"] - if len(selectedRelease) < 1 { - release = "any" - } else { - release = selectedRelease[0] - } - - res.Release = release + res.Release = "any" fmt.Printf("QueryTerms: %s\n", QueryTerms) startTime := time.Now() @@ -222,7 +127,7 @@ func getResults(req http.Request) (ResultPage, error) { //if cmdOut, err := exec.Command(cmd, args...).Output(); err != nil { if cmdOut, err := pipeComands(commands); err != nil { - fmt.Printf("error executing command: %s", err) + fmt.Printf("error executing command: %s %s", commands, err) res.Time = fmt.Sprintf("%s", time.Since(startTime)) return res, nil } else { @@ -241,22 +146,15 @@ func printResults(results ResultPage) { return } - fmt.Printf("Status: 200 OK\r\n") - fmt.Printf("Content-Type: text/html\r\n") + //fmt.Printf("Status: 200 OK\r\n") + //fmt.Printf("Content-Type: text/html\r\n") t.Execute(os.Stdout, results) } func main() { - var req *http.Request var err error - req, err = cgi.Request() - if err != nil { - printError(500, "cannot get requested resource"+err.Error()) - return - } - - res, err := getResults(*req) + res, err := getResults() if err != nil { printError(404, fmt.Sprintf("%s", err)) } else { |