Support fetching markdown from arbitrary HTTP sources

This commit is contained in:
Christian Muehlhaeuser 2019-11-22 14:06:12 +01:00
commit 08dd80a922

22
main.go
View file

@ -5,7 +5,10 @@ import (
"fmt"
"io"
"io/ioutil"
"net/http"
"net/url"
"os"
"strings"
"github.com/spf13/cobra"
@ -31,11 +34,26 @@ func readerFromArgument(s string) (io.ReadCloser, error) {
return os.Stdin, nil
}
if isGitHubURL(s) {
resp, err := findGitHubREADME(s)
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
}
if resp.StatusCode != http.StatusOK {
return nil, fmt.Errorf("HTTP status %d", resp.StatusCode)
}
return resp.Body, nil
}