Explorar o código

Vendor update: git-module and libgin

Achilleas Koutsou %!s(int64=6) %!d(string=hai) anos
pai
achega
bf4d340ebd

+ 2 - 1
vendor/github.com/G-Node/git-module/commit_archive.go

@@ -30,6 +30,7 @@ func (c *Commit) CreateArchive(target string, archiveType ArchiveType, cloneL st
 	case TARGZ:
 	case TARGZ:
 		format = "tar.gz"
 		format = "tar.gz"
 	case GIN:
 	case GIN:
+		// TODO: Fix me!
 		to := filepath.Join(setting.Repository.Upload.TempPath, "archives", filepath.Base(strings.TrimSuffix(c.repo.Path, ".git")))
 		to := filepath.Join(setting.Repository.Upload.TempPath, "archives", filepath.Base(strings.TrimSuffix(c.repo.Path, ".git")))
 		defer os.RemoveAll(to)
 		defer os.RemoveAll(to)
 		_, err := NewCommand("clone", c.repo.Path, to).RunTimeout(-1)
 		_, err := NewCommand("clone", c.repo.Path, to).RunTimeout(-1)
@@ -45,7 +46,7 @@ func (c *Commit) CreateArchive(target string, archiveType ArchiveType, cloneL st
 		if err != nil {
 		if err != nil {
 			return err
 			return err
 		}
 		}
-		err = libgin.MkZip(to, fp)
+		err = libgin.MakeZip(fp, to)
 		return err
 		return err
 	default:
 	default:
 		return fmt.Errorf("unknown format: %v", archiveType)
 		return fmt.Errorf("unknown format: %v", archiveType)

+ 32 - 23
vendor/github.com/G-Node/libgin/libgin/archive.go

@@ -9,21 +9,20 @@ import (
 	"strings"
 	"strings"
 )
 )
 
 
-// MkZip walks the directory tree rooted at src and writes each file found to the given writers.
-// The function accepts multiple writers to allow for multiple outputs (e.g., a file or md5 hash).
-func MkZip(src string, writers ...io.Writer) error {
-	// ensure the src actually exists before trying to zip it
-	if _, err := os.Stat(src); err != nil {
-		return fmt.Errorf("Unable to zip files: %s", err.Error())
+// MakeZip creates a zip archive called dest from the files specified by source.
+// Any directories listed in source are archived recursively.
+func MakeZip(dest io.Writer, source ...string) error {
+	// check sources
+	for _, src := range source {
+		if _, err := os.Stat(src); err != nil {
+			return fmt.Errorf("Cannot access '%s': %s", src, err.Error())
+		}
 	}
 	}
 
 
-	mw := io.MultiWriter(writers...)
-
-	tw := zip.NewWriter(mw)
-	defer tw.Close()
+	zipwriter := zip.NewWriter(dest)
+	defer zipwriter.Close()
 
 
-	// walk path
-	return filepath.Walk(src, func(file string, fi os.FileInfo, err error) error {
+	walker := func(filepath string, fi os.FileInfo, err error) error {
 
 
 		// return on any error
 		// return on any error
 		if err != nil {
 		if err != nil {
@@ -35,23 +34,24 @@ func MkZip(src string, writers ...io.Writer) error {
 		if err != nil {
 		if err != nil {
 			return err
 			return err
 		}
 		}
+
 		// update the name to correctly reflect the desired destination when unzipping
 		// update the name to correctly reflect the desired destination when unzipping
-		header.Name = strings.TrimPrefix(strings.Replace(file, src, "", -1), string(filepath.Separator))
+		// header.Name = strings.TrimPrefix(strings.Replace(file, src, "", -1), string(filepath.Separator))
+		header.Name = filepath
+
+		if fi.Mode().IsDir() {
+			return nil
+		}
 
 
 		// write the header
 		// write the header
-		w, err := tw.CreateHeader(header)
+		w, err := zipwriter.CreateHeader(header)
 		if err != nil {
 		if err != nil {
 			return err
 			return err
 		}
 		}
 
 
-		// return on directories since there will be no content to zip
-		if fi.Mode().IsDir() {
-			return nil
-		}
-		mode := fi.Mode()
-		fmt.Print(mode)
+		// Dereference symlinks
 		if fi.Mode()&os.ModeSymlink != 0 {
 		if fi.Mode()&os.ModeSymlink != 0 {
-			data, err := os.Readlink(file)
+			data, err := os.Readlink(filepath)
 			if err != nil {
 			if err != nil {
 				return err
 				return err
 			}
 			}
@@ -62,7 +62,7 @@ func MkZip(src string, writers ...io.Writer) error {
 		}
 		}
 
 
 		// open files for zipping
 		// open files for zipping
-		f, err := os.Open(file)
+		f, err := os.Open(filepath)
 		defer f.Close()
 		defer f.Close()
 		if err != nil {
 		if err != nil {
 			return err
 			return err
@@ -74,5 +74,14 @@ func MkZip(src string, writers ...io.Writer) error {
 		}
 		}
 
 
 		return nil
 		return nil
-	})
+	}
+
+	// walk path
+	for _, src := range source {
+		err := filepath.Walk(src, walker)
+		if err != nil {
+			return fmt.Errorf("Error adding %s to zip file: %s", src, err.Error())
+		}
+	}
+	return nil
 }
 }

+ 10 - 4
vendor/vendor.json

@@ -20,6 +20,12 @@
 			"revision": "ebde28e0b0efc30e3e89fdc04f98ac0f52f9c004",
 			"revision": "ebde28e0b0efc30e3e89fdc04f98ac0f52f9c004",
 			"revisionTime": "2018-03-12T09:17:42Z"
 			"revisionTime": "2018-03-12T09:17:42Z"
 		},
 		},
+		{
+			"checksumSHA1": "o9pe3rcDJtawufeidpMJsu4ZtFM=",
+			"path": "github.com/G-Node/gin-doi/cmd/gindoid",
+			"revision": "b72b4a917fa7e5d57da00b071410d06bbdcacf62",
+			"revisionTime": "2018-12-12T20:16:20Z"
+		},
 		{
 		{
 			"checksumSHA1": "AbB5Bym9LWwC7RDCCBioMlZaqhA=",
 			"checksumSHA1": "AbB5Bym9LWwC7RDCCBioMlZaqhA=",
 			"path": "github.com/G-Node/gin-doi/src",
 			"path": "github.com/G-Node/gin-doi/src",
@@ -27,7 +33,7 @@
 			"revisionTime": "2018-04-10T11:20:03Z"
 			"revisionTime": "2018-04-10T11:20:03Z"
 		},
 		},
 		{
 		{
-			"checksumSHA1": "JlYHUnql8P/G1SL8LYVZ0IpuUgY=",
+			"checksumSHA1": "V0zjmnydVKKxNJfyobKL5cKCN/g=",
 			"path": "github.com/G-Node/git-module",
 			"path": "github.com/G-Node/git-module",
 			"revision": "f0e8a2072f9991c76ac81d90aea579ac4e5f1a15",
 			"revision": "f0e8a2072f9991c76ac81d90aea579ac4e5f1a15",
 			"revisionTime": "2018-12-07T17:41:12Z"
 			"revisionTime": "2018-12-07T17:41:12Z"
@@ -44,10 +50,10 @@
 			"revision": ""
 			"revision": ""
 		},
 		},
 		{
 		{
-			"checksumSHA1": "gEf/MJ/hjvUMzYnGTkhd7JJhfCY=",
+			"checksumSHA1": "ivLQm0J9hV8UR3+YYR7BugdZLsg=",
 			"path": "github.com/G-Node/libgin/libgin",
 			"path": "github.com/G-Node/libgin/libgin",
-			"revision": "01566bb6f633cd8db8a9cd430ed6290df7a0d3db",
-			"revisionTime": "2018-12-07T17:44:40Z"
+			"revision": "826bc3c293a0109c9c89cc5d463fc58156a240c0",
+			"revisionTime": "2018-12-12T19:25:09Z"
 		},
 		},
 		{
 		{
 			"checksumSHA1": "s+CthU3jnDZx1F6sOfsEvRLFjBE=",
 			"checksumSHA1": "s+CthU3jnDZx1F6sOfsEvRLFjBE=",