md2man.go 860 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "io/ioutil"
  6. "os"
  7. "github.com/cpuguy83/go-md2man/md2man"
  8. )
  9. var inFilePath = flag.String("in", "", "Path to file to be processed (default: stdin)")
  10. var outFilePath = flag.String("out", "", "Path to output processed file (default: stdout)")
  11. func main() {
  12. var err error
  13. flag.Parse()
  14. inFile := os.Stdin
  15. if *inFilePath != "" {
  16. inFile, err = os.Open(*inFilePath)
  17. if err != nil {
  18. fmt.Println(err)
  19. os.Exit(1)
  20. }
  21. }
  22. defer inFile.Close()
  23. doc, err := ioutil.ReadAll(inFile)
  24. if err != nil {
  25. fmt.Println(err)
  26. os.Exit(1)
  27. }
  28. out := md2man.Render(doc)
  29. outFile := os.Stdout
  30. if *outFilePath != "" {
  31. outFile, err = os.Create(*outFilePath)
  32. if err != nil {
  33. fmt.Println(err)
  34. os.Exit(1)
  35. }
  36. defer outFile.Close()
  37. }
  38. _, err = outFile.Write(out)
  39. if err != nil {
  40. fmt.Println(err)
  41. os.Exit(1)
  42. }
  43. }