From 29c005aded55168631029f9b129ff812ff96f802 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Wed, 15 Nov 2017 16:19:23 -0500 Subject: more --- filter.go | 103 -------------------------------------------------------------- 1 file changed, 103 deletions(-) delete mode 100644 filter.go (limited to 'filter.go') diff --git a/filter.go b/filter.go deleted file mode 100644 index 0c09963..0000000 --- a/filter.go +++ /dev/null @@ -1,103 +0,0 @@ -package main - -import ( - "os" - "os/exec" - "bytes" -) - -var prog [string]string - -func init() { - var err error - for _, p := range []string{"git", "makepkg"} { - prog[p], err = exec.LookPath("git") - if err != nil { - panic(err) - } - } -} - -func pipeline(cmds ...*exec.Cmd) err error { - for i, cmd := range cmds[:len(cmds)-1] { - cmds[i+1].Stdin, err = cmd.StdoutPipe() - if err != nil { - return - } - } - - stderr := make([]bytes.Buffer, len(cmds)) - for i, cmd := range cmds { - cmd.Stderr = &stderr[i] - if err = cmd.Start(); err != nil { - break - } - } - - for i, cmd := range cmds { - if cmd.Process == nil { - continue - } - if _err := cmd.Wait(); _err != nil { - if ee, ok := _err.(*exec.ExitError); ok { - ee.Stderr = stderr[i].Bytes() - } - if err != nil { - err = _err - } - } - } - return -} - -func pkgbuild2srcinfo(pkgbuildId string) (string, error) { - cachefilename := "filter/pkgbuild2srcinfo/"+pkgbuildId - for { - b, err := ioutil.ReadFile(cachefilename) - if err == nil && len(bytes.TrimSpace(b)) == 40 { - return bytes.TrimSpace(b).String(), nil - } - - file, err := os.OpenFile("filter/tmp/PKGBUILD", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) - if err != nil { - return "", err - } - err = pipeline( - &exec.Cmd{ - Path: prog["git"], Args: ["git", "cat-file", "blob", pkgbuildId], - Stdout: file, - }) - file.Close() - if err != nil { - return "", err - } - - - file, err = os.OpenFile(cachefilename, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0644) - err = pipeline( - &exec.Cmd{ - Path: prog["makepkg"], Args: ["makepkg", "--printsrcinfo"], - Dir: "filter/tmp" - }, - &exec.Cmd{ - Path: prog["git"], Args: ["git", "hash-object", "-t", "blob", "-w", "--stdin", "--no-filters"], - Stdout: &buf, - }) - file.Close() - if err != nil { - return "", err - } - } -} - - - -func filter(fromPfix string, toPfix string) { - exec.Cmd{ - Path: prog["git"], Args: ["git", "fast-export", - "--use-done-feature", - "--no-data", - "--", fromPfix + "/master"], - } - -} -- cgit v1.2.3