blog/contrib/pulls/pulls.go

63 lines
1.2 KiB
Go

package main
import (
"flag"
"fmt"
"io/ioutil"
"os"
"regexp"
)
var (
pullGiteaURL = "https://github.com/go-gitea/gitea/pull/"
pullTeaURL = "https://gitea.com/gitea/tea/pulls/"
pullRegex = regexp.MustCompile(`#(\d+)\)`)
)
func main() {
var release string
var tea bool
flag.StringVar(&release, "release", "", "The release to target")
flag.BoolVar(&tea, "tea", false, "switch to tea mode")
flag.Parse()
if release == "" {
fmt.Println("missing --release flag")
return
}
post := fmt.Sprintf("content/post/release-of-%s.md", release)
if tea {
post = fmt.Sprintf("content/post/release-of-tea-%s.md", release)
}
fi, err := os.OpenFile(post, os.O_RDWR, os.ModePerm)
if os.IsNotExist(err) {
fmt.Printf("could not find content/post/release-of-%s.md\n", release)
return
} else if err != nil {
fmt.Println(err)
return
}
defer fi.Close()
data, err := ioutil.ReadAll(fi)
if err != nil {
fmt.Println(err)
return
}
pullURL := pullGiteaURL
if tea {
pullURL = pullTeaURL
}
repl := pullRegex.ReplaceAll(data, []byte(`[#$1](`+pullURL+`$1))`))
if _, err := fi.WriteAt(repl, 0); err != nil {
fmt.Println(err)
return
}
fmt.Println("conversion complete")
}