// Copyright 2013 The Go Authors. All rights reserved. // // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file or at // https://developers.google.com/open-source/licenses/bsd. // Package doc fetches Go package documentation from version control services. package doc import ( "github.com/golang/gddo/gosrc" "go/doc" "net/http" "strings" ) func Get(client *http.Client, importPath string, etag string) (*Package, error) { const versionPrefix = PackageVersion + "-" if strings.HasPrefix(etag, versionPrefix) { etag = etag[len(versionPrefix):] } else { etag = "" } dir, err := gosrc.Get(client, importPath, etag) if err != nil { return nil, err } pdoc, err := newPackage(dir) if err != nil { return pdoc, err } if pdoc.Synopsis == "" && pdoc.Doc == "" && !pdoc.IsCmd && pdoc.Name != "" && dir.ImportPath == dir.ProjectRoot && len(pdoc.Errors) == 0 { project, err := gosrc.GetProject(client, dir.ResolvedPath) switch { case err == nil: pdoc.Synopsis = doc.Synopsis(project.Description) case gosrc.IsNotFound(err): // ok default: return nil, err } } return pdoc, nil }