forked from External/grumble
49 lines
1 KiB
Go
49 lines
1 KiB
Go
// +build ignore
|
|
|
|
package main
|
|
|
|
import (
|
|
"io/ioutil"
|
|
"log"
|
|
"net/http"
|
|
"os/exec"
|
|
"regexp"
|
|
)
|
|
|
|
var replacements = []string{
|
|
`(?m)^package MumbleProto;$`, `package mumbleproto;`,
|
|
`(?m)^(message Version {)$`, "$1\n\trepeated string crypto_modes = 5;\n",
|
|
}
|
|
|
|
func main() {
|
|
// Fetch Mumble.proto
|
|
resp, err := http.Get("https://raw.githubusercontent.com/mumble-voip/mumble/master/src/Mumble.proto")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer resp.Body.Close()
|
|
data, err := ioutil.ReadAll(resp.Body)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
// Perform replacements
|
|
for i := 0; i < len(replacements); i += 2 {
|
|
re, rp := replacements[i], replacements[i+1]
|
|
regex, err := regexp.Compile(re)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
data = regex.ReplaceAll(data, []byte(rp))
|
|
}
|
|
|
|
// Write Mumble.proto
|
|
if err := ioutil.WriteFile("Mumble.proto", data, 0644); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
|
|
// Run protobuf compiler
|
|
if err := exec.Command("protoc", "--go_out=.", "Mumble.proto").Run(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|