summaryrefslogtreecommitdiff
path: root/filter.go
diff options
context:
space:
mode:
Diffstat (limited to 'filter.go')
-rw-r--r--filter.go103
1 files changed, 0 insertions, 103 deletions
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"],
- }
-
-}