From 63a27f647d747a9e653a8d14ed1ca6b8100ab6fa Mon Sep 17 00:00:00 2001 From: Unknown Date: Sun, 19 May 2013 13:46:01 -0400 Subject: [PATCH] clean code: install.go --- doc/github.go | 172 +++++++++++++++++++++++++------------------------- install.go | 6 +- 2 files changed, 92 insertions(+), 86 deletions(-) diff --git a/doc/github.go b/doc/github.go index a0e063ec2..899638738 100644 --- a/doc/github.go +++ b/doc/github.go @@ -28,108 +28,110 @@ func SetGithubCredentials(id, secret string) { githubCred = "client_id=" + id + "&client_secret=" + secret } +// GetGithubDoc downloads tarball from github.com. func GetGithubDoc(client *http.Client, match map[string]string, commit string) (*Package, []string, error) { - /*SetGithubCredentials("1862bcb265171f37f36c", "308d71ab53ccd858416cfceaed52d5d5b7d53c5f") + SetGithubCredentials("1862bcb265171f37f36c", "308d71ab53ccd858416cfceaed52d5d5b7d53c5f") match["cred"] = githubCred - var refs []*struct { - Object struct { - Type string - Sha string - Url string - } - Ref string - Url string - } - - // Check if has specific commit. - if len(commit) == 0 { - // Get up-to-date version. - err := httpGetJSON(client, expand("https://api.github.com/repos/{owner}/{repo}/git/refs?{cred}", match), &refs) - if err != nil { - return nil, err + /* + var refs []*struct { + Object struct { + Type string + Sha string + Url string + } + Ref string + Url string } - tags := make(map[string]string) - for _, ref := range refs { - switch { - case strings.HasPrefix(ref.Ref, "refs/heads/"): - tags[ref.Ref[len("refs/heads/"):]] = ref.Object.Sha - case strings.HasPrefix(ref.Ref, "refs/tags/"): - tags[ref.Ref[len("refs/tags/"):]] = ref.Object.Sha + // Check if has specific commit. + if len(commit) == 0 { + // Get up-to-date version. + err := httpGetJSON(client, expand("https://api.github.com/repos/{owner}/{repo}/git/refs?{cred}", match), &refs) + if err != nil { + return nil, err } - } - // Check revision tag. - match["tag"], commit, err = bestTag(tags, "master") - if err != nil { - return nil, err - } - } - - match["sha"] = commit - // Download zip. - p, err := httpGetBytes(client, expand("https://github.com/{owner}/{repo}/archive/{sha}.zip", match), nil) - if err != nil { - return nil, err - } - - r, err := zip.NewReader(bytes.NewReader(p), int64(len(p))) - if err != nil { - return nil, err - } - //defer r.Close() - - shaName := expand("{repo}-{sha}", match) - paths := utils.GetGOPATH() - importPath := "github.com/" + expand("{owner}/{repo}", match) - installPath := paths[0] + "/src/" + importPath - // Create destination directory - os.Mkdir(installPath, os.ModePerm) - - dirs := make([]string, 0, 5) - for _, f := range r.File { - absPath := strings.Replace(f.FileInfo().Name(), shaName, installPath, 1) - fmt.Printf("Unzipping %s...", absPath) - - // Check if it is directory or not. - if strings.HasSuffix(absPath, "/") { - // Directory. - dirs = append(dirs, absPath) - continue - } + tags := make(map[string]string) + for _, ref := range refs { + switch { + case strings.HasPrefix(ref.Ref, "refs/heads/"): + tags[ref.Ref[len("refs/heads/"):]] = ref.Object.Sha + case strings.HasPrefix(ref.Ref, "refs/tags/"): + tags[ref.Ref[len("refs/tags/"):]] = ref.Object.Sha + } + } - // Get files from archive - rc, err := f.Open() - if err != nil { - return nil, err + // Check revision tag. + match["tag"], commit, err = bestTag(tags, "master") + if err != nil { + return nil, err + } } - // Create diretory before create file - os.MkdirAll(path.Dir(absPath), os.ModePerm) - // Write data to file - fw, _ := os.Create(absPath) + match["sha"] = commit + // Download zip. + p, err := httpGetBytes(client, expand("https://github.com/{owner}/{repo}/archive/{sha}.zip", match), nil) if err != nil { return nil, err } - n, err := io.Copy(fw, rc) + r, err := zip.NewReader(bytes.NewReader(p), int64(len(p))) if err != nil { return nil, err } - fmt.Println(n) - - /*localF, _ := os.Open(absPath) - fbytes := make([]byte, f.FileInfo().Size()) - n, _ := localF.Read(fbytes) - - // Check if Go source file. - if n > 0 && strings.HasSuffix(absPath, ".go") { - files = append(files, &source{ - name: srcName, - data: fbytes, - }) - }*/ + //defer r.Close() + + shaName := expand("{repo}-{sha}", match) + paths := utils.GetGOPATH() + importPath := "github.com/" + expand("{owner}/{repo}", match) + installPath := paths[0] + "/src/" + importPath + // Create destination directory + os.Mkdir(installPath, os.ModePerm) + + dirs := make([]string, 0, 5) + for _, f := range r.File { + absPath := strings.Replace(f.FileInfo().Name(), shaName, installPath, 1) + fmt.Printf("Unzipping %s...", absPath) + + // Check if it is directory or not. + if strings.HasSuffix(absPath, "/") { + // Directory. + dirs = append(dirs, absPath) + continue + } + + // Get files from archive + rc, err := f.Open() + if err != nil { + return nil, err + } + + // Create diretory before create file + os.MkdirAll(path.Dir(absPath), os.ModePerm) + // Write data to file + fw, _ := os.Create(absPath) + if err != nil { + return nil, err + } + + n, err := io.Copy(fw, rc) + if err != nil { + return nil, err + } + fmt.Println(n) + + /*localF, _ := os.Open(absPath) + fbytes := make([]byte, f.FileInfo().Size()) + n, _ := localF.Read(fbytes) + + // Check if Go source file. + if n > 0 && strings.HasSuffix(absPath, ".go") { + files = append(files, &source{ + name: srcName, + data: fbytes, + }) + }*/ /* } pkg := &Package{ diff --git a/install.go b/install.go index a6e60bdf3..e1cfeaa0f 100644 --- a/install.go +++ b/install.go @@ -105,7 +105,11 @@ func runInstall(cmd *Command, args []string) { commits := make([]string, len(args)) downloadPackages(args, commits) - // Install packages all together. + if !cmdInstall.Flags["d"] { + // Install packages all together. + fmt.Printf("Installing package: %s.\n") + } + fmt.Println("Well done.") }