glow/main.go

53 lines
818 B
Go
Raw Normal View History

2019-11-04 23:17:36 +00:00
package main
import (
2019-11-09 20:07:01 +00:00
"flag"
2019-11-04 23:17:36 +00:00
"fmt"
"io"
2019-11-09 22:12:54 +00:00
"io/ioutil"
2019-11-09 20:07:01 +00:00
"os"
2019-11-04 23:17:36 +00:00
2019-11-15 18:35:04 +00:00
"github.com/charmbracelet/gold"
2019-11-04 23:17:36 +00:00
)
func readerFromArgument(s string) (io.ReadCloser, error) {
if s == "-" {
return os.Stdin, nil
}
if isGitHubURL(s) {
resp, err := findGitHubREADME(s)
if err != nil {
return nil, err
}
return resp.Body, nil
}
return os.Open(s)
}
2019-11-04 23:17:36 +00:00
func main() {
2019-11-09 20:07:01 +00:00
s := flag.String("s", "", "style json path")
flag.Parse()
2019-11-09 22:12:54 +00:00
args := flag.Args()
if len(args) != 1 {
fmt.Println("Missing Markdown file. Usage: ./gold -s STYLE.json FILE.md")
os.Exit(1)
}
in, err := readerFromArgument(args[0])
if err != nil {
fmt.Println(err)
os.Exit(1)
2019-11-09 22:12:54 +00:00
}
defer in.Close()
b, _ := ioutil.ReadAll(in)
out, err := gold.RenderBytes(b, *s)
2019-11-09 20:07:01 +00:00
if err != nil {
fmt.Println(err)
os.Exit(1)
}
2019-11-09 22:12:54 +00:00
fmt.Printf("%s", string(out))
2019-11-04 23:17:36 +00:00
}