mirror of
https://github.com/charmbracelet/glow.git
synced 2026-08-20 23:24:18 +02:00
Support github URLs without protocol
This commit is contained in:
parent
f09d2907bd
commit
1baefbbec1
2 changed files with 15 additions and 11 deletions
14
github.go
14
github.go
|
|
@ -8,13 +8,17 @@ import (
|
|||
)
|
||||
|
||||
// isGitHubURL tests a string to determine if it is a well-structured GitHub URL
|
||||
func isGitHubURL(s string) bool {
|
||||
u, err := url.ParseRequestURI(s)
|
||||
if err != nil {
|
||||
return false
|
||||
func isGitHubURL(s string) (string, bool) {
|
||||
if strings.HasPrefix(s, "github.com/") {
|
||||
s = "https://" + s
|
||||
}
|
||||
|
||||
return strings.ToLower(u.Host) == "github.com"
|
||||
u, err := url.ParseRequestURI(s)
|
||||
if err != nil {
|
||||
return "", false
|
||||
}
|
||||
|
||||
return u.String(), strings.ToLower(u.Host) == "github.com"
|
||||
}
|
||||
|
||||
// findGitHubREADME tries to find the correct README filename in a repository
|
||||
|
|
|
|||
16
main.go
16
main.go
|
|
@ -34,19 +34,19 @@ func readerFromArg(s string) (io.ReadCloser, error) {
|
|||
return os.Stdin, nil
|
||||
}
|
||||
|
||||
if u, ok := isGitHubURL(s); ok {
|
||||
resp, err := findGitHubREADME(u)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return resp.Body, nil
|
||||
}
|
||||
|
||||
if u, err := url.ParseRequestURI(s); err == nil {
|
||||
if !strings.HasPrefix(u.Scheme, "http") {
|
||||
return nil, fmt.Errorf("%s is not a supported protocol", u.Scheme)
|
||||
}
|
||||
|
||||
if isGitHubURL(s) {
|
||||
resp, err := findGitHubREADME(s)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return resp.Body, nil
|
||||
}
|
||||
|
||||
resp, err := http.Get(u.String())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue