summaryrefslogtreecommitdiff
path: root/nex/request.go
blob: 1209c653ae56f4468601b684a8c4bf4ddcb83e82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
package nex

import (
	"bufio"
	"io"
	"net/url"
	"strings"

	"tildegit.org/tjp/sliderule/internal/types"
)

// ParseRequest reads a nex request from an io.Reader.
func ParseRequest(rdr io.Reader) (*types.Request, error) {
	line, err := bufio.NewReader(rdr).ReadString('\n')
	if err != nil {
		return nil, err
	}
	line = strings.TrimSuffix(line, "\n")
	line = strings.TrimSuffix(line, "\r")

	u, err := url.Parse("nex:" + line)
	if err != nil {
		return nil, err
	}
	u.OmitHost = true
	return &types.Request{URL: u}, nil
}