go-bsdiff/cmd/go-bspatch/main.go

43 lines
819 B
Go
Raw Normal View History

package main
import (
"log"
"os"
"github.com/icedream/go-bsdiff/patch"
"gopkg.in/alecthomas/kingpin.v2"
)
var (
cli = kingpin.New("go-bspatch", "Applies binary patches generated using the bsdiff algorithm.")
argOld = cli.Arg("old", "The old file.").Required().ExistingFile()
argNew = cli.Arg("new", "Where the new file will be written to.").Required().File()
argPatch = cli.Arg("patch", "The patch file.").Required().ExistingFile()
)
func must(err error) {
if err == nil {
return
}
log.Fatal(err)
}
func main() {
kingpin.MustParse(cli.Parse(os.Args[1:]))
newFile := *argNew
defer newFile.Close()
oldFile, err := os.Open(*argOld)
must(err)
defer oldFile.Close()
patchFile, err := os.Open(*argPatch)
must(err)
defer patchFile.Close()
must(patch.Patch(oldFile, newFile, patchFile))
}