From 3967812bd0de40330dfbb9e1a7d14d4073cc1b10 Mon Sep 17 00:00:00 2001 From: Máximo Cuadros Date: Mon, 12 Dec 2016 15:50:03 +0100 Subject: examples: review, testing and documentation (#176) * examples reviews, testing and documentation * including the execution on travis, and fix readme * fix example link * including the execution on travis --- examples/clone/main.go | 73 ++++++++------------------------------------------ 1 file changed, 11 insertions(+), 62 deletions(-) (limited to 'examples/clone') diff --git a/examples/clone/main.go b/examples/clone/main.go index 0fa5fe6..13257ca 100644 --- a/examples/clone/main.go +++ b/examples/clone/main.go @@ -2,87 +2,36 @@ package main import ( "fmt" - "io" "os" - "path/filepath" - - "github.com/fatih/color" "gopkg.in/src-d/go-git.v4" + . "gopkg.in/src-d/go-git.v4/examples" ) func main() { - checkArgs() + CheckArgs("", "") url := os.Args[1] directory := os.Args[2] r, err := git.NewFilesystemRepository(directory) - checkIfError(err) + CheckIfError(err) - // Clone the given repository, using depth we create a shallow clone : - // > git clone --depth 1 - color.Blue("git clone %s --depth 1 %s", url, directory) + // Clone the given repository to the given directory + Info("git clone %s %s", url, directory) err = r.Clone(&git.CloneOptions{ - URL: url, + URL: url, + Depth: 1, }) - checkIfError(err) + + CheckIfError(err) // ... retrieving the branch being pointed by HEAD ref, err := r.Head() - checkIfError(err) + CheckIfError(err) // ... retrieving the commit object commit, err := r.Commit(ref.Hash()) - checkIfError(err) + CheckIfError(err) fmt.Println(commit) - os.Exit(0) - - // ... we get all the files from the commit - files, err := commit.Files() - checkIfError(err) - - // ... now we iterate the files to save to disk - err = files.ForEach(func(f *git.File) error { - abs := filepath.Join(directory, f.Name) - dir := filepath.Dir(abs) - - os.MkdirAll(dir, 0777) - file, err := os.Create(abs) - if err != nil { - return err - } - - defer file.Close() - r, err := f.Reader() - if err != nil { - return err - } - - defer r.Close() - - if err := file.Chmod(f.Mode); err != nil { - return err - } - - _, err = io.Copy(file, r) - return err - }) - checkIfError(err) -} - -func checkIfError(err error) { - if err == nil { - return - } - - color.Red("error: %s", err) - os.Exit(1) -} - -func checkArgs() { - if len(os.Args) < 3 { - color.Cyan("Usage: %s ", os.Args[0]) - os.Exit(1) - } } -- cgit