Fix lint and govet errors. Change-Id: I0efe2e5c2661304721f162c627cc8a7e58a72969
diff --git a/cache/cache.go b/cache/cache.go index 3985bec..b76575f 100644 --- a/cache/cache.go +++ b/cache/cache.go
@@ -36,6 +36,7 @@ FetchFrequency time.Duration } +// NewCache sets up a Cache instance according to the given options. func NewCache(d string, opts Options) (*Cache, error) { if opts.FetchFrequency == 0 { opts.FetchFrequency = 12 * time.Hour
diff --git a/cmd/slothfs-expand-manifest/main.go b/cmd/slothfs-expand-manifest/main.go index 642798d..48ac2e1 100644 --- a/cmd/slothfs-expand-manifest/main.go +++ b/cmd/slothfs-expand-manifest/main.go
@@ -122,7 +122,7 @@ branch := mf.ProjectRevision(p) commit, ok := proj.Branches[branch] if !ok { - return fmt.Errorf("branch %q for repo %s not returned.", branch, p.Name) + return fmt.Errorf("branch %q for repo %s not returned", branch, p.Name) } p.Revision = commit
diff --git a/cookie/cookie.go b/cookie/cookie.go index f25e884..cdb6282 100644 --- a/cookie/cookie.go +++ b/cookie/cookie.go
@@ -110,7 +110,7 @@ } case <-w.Errors: - log.Printf("notify: %v", path, err) + log.Printf("notify (%s): %v", path, err) } } }()
diff --git a/fs/config.go b/fs/config.go index ab49e66..2faaf3d 100644 --- a/fs/config.go +++ b/fs/config.go
@@ -26,7 +26,7 @@ Clone bool } -// Reads a JSON file containing clone options +// ReadConfig reads a JSON file containing clone options func ReadConfig(contents []byte) (repo []CloneOption, file []CloneOption, err error) { var cfg []configEntry if err := json.Unmarshal(contents, &cfg); err != nil {
diff --git a/fs/gitilesfs.go b/fs/gitilesfs.go index 77562eb..6131d9b 100644 --- a/fs/gitilesfs.go +++ b/fs/gitilesfs.go
@@ -278,11 +278,11 @@ return fuse.OK } -func (d *dataNode) Open(flags uint32, content *fuse.Context) (nodefs.File, fuse.Status) { - return nodefs.NewDataFile(d.data), fuse.OK +func (n *dataNode) Open(flags uint32, content *fuse.Context) (nodefs.File, fuse.Status) { + return nodefs.NewDataFile(n.data), fuse.OK } -func (d *dataNode) GetXAttr(attribute string, context *fuse.Context) (data []byte, code fuse.Status) { +func (n *dataNode) GetXAttr(attribute string, context *fuse.Context) (data []byte, code fuse.Status) { return nil, fuse.ENODATA } @@ -312,7 +312,7 @@ func (r *gitilesRoot) Deletable() bool { return false } -func (n *gitilesRoot) GetXAttr(attribute string, context *fuse.Context) (data []byte, code fuse.Status) { +func (r *gitilesRoot) GetXAttr(attribute string, context *fuse.Context) (data []byte, code fuse.Status) { return nil, fuse.ENODATA }
diff --git a/fs/gitilesfs_test.go b/fs/gitilesfs_test.go index a749287..b39ea25 100644 --- a/fs/gitilesfs_test.go +++ b/fs/gitilesfs_test.go
@@ -734,7 +734,7 @@ } if got, err := os.Readlink(configName); err != nil { - t.Fatalf("Readlink(%s): %", configName, err) + t.Fatalf("Readlink(%s): %v", configName, err) } else if want := "../ws/.slothfs/manifest.xml"; got != want { t.Errorf("got link %s, want %s", got, want) } @@ -787,7 +787,7 @@ wsDir := filepath.Join(fix.mntDir, "ws") if _, err := os.Lstat(wsDir); err != nil { - t.Fatalf("Lstat(%s): %v", wsDir) + t.Fatalf("Lstat(%s): %v", wsDir, err) } if err := os.Remove(filepath.Join(fix.mntDir, "config", "ws")); err != nil {
diff --git a/fs/manifestfs.go b/fs/manifestfs.go index 888eda7..2450c02 100644 --- a/fs/manifestfs.go +++ b/fs/manifestfs.go
@@ -80,23 +80,23 @@ return root, nil } -func (fs *manifestFSRoot) OnMount(fsConn *nodefs.FileSystemConnector) { - if err := fs.onMount(fsConn); err != nil { +func (r *manifestFSRoot) OnMount(fsConn *nodefs.FileSystemConnector) { + if err := r.onMount(fsConn); err != nil { log.Printf("onMount: %v", err) - for k := range fs.Inode().Children() { - fs.Inode().RmChild(k) + for k := range r.Inode().Children() { + r.Inode().RmChild(k) } - fs.Inode().NewChild("ERROR", false, newDataNode([]byte(err.Error()))) + r.Inode().NewChild("ERROR", false, newDataNode([]byte(err.Error()))) } // Don't need the trees anymore. - fs.trees = nil + r.trees = nil } -func (fs *manifestFSRoot) onMount(fsConn *nodefs.FileSystemConnector) error { +func (r *manifestFSRoot) onMount(fsConn *nodefs.FileSystemConnector) error { var byDepth [][]string - for p := range fs.trees { + for p := range r.trees { d := len(strings.Split(p, "/")) for len(byDepth) <= d { byDepth = append(byDepth, nil) @@ -107,8 +107,8 @@ clonablePaths := map[string]bool{} revmap := map[string]*manifest.Project{} - for i, p := range fs.options.Manifest.Project { - revmap[p.Path] = &fs.options.Manifest.Project[i] + for i, p := range r.options.Manifest.Project { + revmap[p.Path] = &r.options.Manifest.Project[i] if p.CloneDepth == "" { clonablePaths[p.Path] = true @@ -120,7 +120,7 @@ for _, ps := range byDepth { for _, p := range ps { dir, base := filepath.Split(p) - parent, left := fsConn.Node(fs.Inode(), dir) + parent, left := fsConn.Node(r.Inode(), dir) for _, c := range left { ch := parent.NewChild(c, true, newDirNode()) parent = ch @@ -128,7 +128,7 @@ clone, ok := clonablePaths[p] if !ok { - for _, e := range fs.options.RepoCloneOption { + for _, e := range r.options.RepoCloneOption { if e.RE.FindString(p) != "" { clone = e.Clone break @@ -141,16 +141,16 @@ cloneURL = "" } - repoService := fs.service.NewRepoService(revmap[p].Name) + repoService := r.service.NewRepoService(revmap[p].Name) opts := GitilesOptions{ Revision: revmap[p].Revision, CloneURL: cloneURL, - CloneOption: fs.options.FileCloneOption, + CloneOption: r.options.FileCloneOption, } - subRoot := NewGitilesRoot(fs.cache, fs.trees[p], repoService, opts) - subRoot.(*gitilesRoot).nodeCache = fs.nodeCache + subRoot := NewGitilesRoot(r.cache, r.trees[p], repoService, opts) + subRoot.(*gitilesRoot).nodeCache = r.nodeCache parent.NewChild(base, true, subRoot) if err := subRoot.(*gitilesRoot).onMount(fsConn); err != nil { return fmt.Errorf("onMount(%s): %v", p, err) @@ -160,14 +160,14 @@ // Do Linkfile, Copyfile after setting up the repos, so we // have directories to attach the copy/link nodes to. - for _, p := range fs.options.Manifest.Project { + for _, p := range r.options.Manifest.Project { for _, cp := range p.Copyfile { - srcNode, left := fsConn.Node(fs.Inode(), filepath.Join(p.Path, cp.Src)) + srcNode, left := fsConn.Node(r.Inode(), filepath.Join(p.Path, cp.Src)) if len(left) > 0 { return fmt.Errorf("Copyfile(%s): source %s does not exist", p.Name, cp.Src) } - dir, left := fsConn.Node(fs.Inode(), cp.Dest) + dir, left := fsConn.Node(r.Inode(), cp.Dest) switch len(left) { case 0: return fmt.Errorf("Copyfile(%s): dest %s already exists.", p.Name, cp.Dest) @@ -180,7 +180,7 @@ } for _, lf := range p.Linkfile { - dir, left := fsConn.Node(fs.Inode(), lf.Dest) + dir, left := fsConn.Node(r.Inode(), lf.Dest) switch len(left) { case 0: return fmt.Errorf("Linkfile(%s): dest %s already exists.", p.Name, lf.Dest) @@ -200,8 +200,8 @@ } } - metaNode := fs.Inode().NewChild(".slothfs", true, newDirNode()) - metaNode.NewChild("manifest.xml", false, newDataNode(fs.manifestXML)) + metaNode := r.Inode().NewChild(".slothfs", true, newDirNode()) + metaNode.NewChild("manifest.xml", false, newDataNode(r.manifestXML)) var tree gitiles.Tree treeContent, err := json.Marshal(tree)
diff --git a/fs/multifs.go b/fs/multifs.go index 3c72c05..b039f19 100644 --- a/fs/multifs.go +++ b/fs/multifs.go
@@ -63,11 +63,11 @@ r.Inode().NewChild("config", true, cfg) if err := cfg.configureWorkspaces(); err != nil { - log.Println("configureWorkspaces: %v", err) + log.Printf("configureWorkspaces: %v", err) } } -func (r *configNode) Deletable() bool { return false } +func (c *configNode) Deletable() bool { return false } func NewMultiFS(service *gitiles.Service, c *cache.Cache, options MultiFSOptions) *multiManifestFSRoot { r := &multiManifestFSRoot{ @@ -105,7 +105,7 @@ return c.link, fuse.OK } -func (r *configEntryNode) Deletable() bool { return false } +func (c *configEntryNode) Deletable() bool { return false } func (c *configNode) Unlink(name string, ctx *fuse.Context) fuse.Status { child := c.root.Inode().RmChild(name) @@ -167,7 +167,7 @@ }) if err := fs.(*manifestFSRoot).onMount(c.root.fsConn); err != nil { - log.Println("onMount(%s): %v", name, err) + log.Printf("onMount(%s): %v", name, err) for k := range child.Children() { child.RmChild(k) }
diff --git a/gitiles/client.go b/gitiles/client.go index 5da2ea4..9422540 100644 --- a/gitiles/client.go +++ b/gitiles/client.go
@@ -56,6 +56,8 @@ UserAgent string } +// LoadCookieJar sets up a cookiejar file to load and watch for +// changes. func (o *Options) LoadCookieJar(nm string) error { if nm == "" { return nil @@ -173,6 +175,7 @@ return projects, err } +// NewRepoService creates a service for a specific repository on a Gitiles server. func (s *Service) NewRepoService(name string) *RepoService { return &RepoService{ Name: name,
diff --git a/gitiles/types.go b/gitiles/types.go index b10ecbc..0b9a593 100644 --- a/gitiles/types.go +++ b/gitiles/types.go
@@ -16,6 +16,7 @@ import "fmt" +// Project describes a repository type Project struct { Name string CloneURL string `json:"clone_url"` @@ -23,6 +24,7 @@ Branches map[string]string `json:"branches"` } +// Person describes a committer or author. type Person struct { Name string Email string @@ -31,6 +33,7 @@ Time string } +// DiffEntry describes a file difference. type DiffEntry struct { Type string OldID string `json:"old_id"` @@ -41,6 +44,7 @@ NewPath string `json:"new_path"` } +// Commit describes a git commit. type Commit struct { Commit string Tree string @@ -51,11 +55,13 @@ TreeDiff []DiffEntry `json:"tree_diff"` } +// Log holds the output of a revwalk. type Log struct { Log []Commit Next string } +// BlameRegion represents a attribution of a file range. type BlameRegion struct { Start int Count int @@ -64,10 +70,12 @@ Author Person } +// Blame represents all of the BlameRegions in a file. type Blame struct { Regions []BlameRegion } +// TreeEntry holds a single entry in a tree. type TreeEntry struct { Mode int Type string @@ -90,6 +98,7 @@ return s } +// Tree holds a (possibly recursively expanded) tree. type Tree struct { ID string Entries []TreeEntry
diff --git a/manifest/types.go b/manifest/types.go index 343b42c..ea11d5e 100644 --- a/manifest/types.go +++ b/manifest/types.go
@@ -72,10 +72,6 @@ SyncS string `xml:"sync-s,attr"` } -type ManifestServer struct { - URL string `xml:"url,attr"` -} - // Manifest holds the entire manifest, describing a set of git // projects to be stitched together type Manifest struct {
diff --git a/populate/populate.go b/populate/populate.go index 1654efd..a8fd03b 100644 --- a/populate/populate.go +++ b/populate/populate.go
@@ -12,8 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -// populate holds the code to augment a partial R/W checkout with a -// symlink forest into a SlothFS workspace. +// Package populate holds the code to augment a partial R/W checkout +// with a symlink forest into a SlothFS workspace. package populate import (
diff --git a/populate/repotree.go b/populate/repotree.go index 7be46eb..6ebce37 100644 --- a/populate/repotree.go +++ b/populate/repotree.go
@@ -220,7 +220,7 @@ } // construct fills `parent` looking through `dir` subdir of `repoRoot`. -func (parent *repoTree) fill(repoRoot, dir string) error { +func (t *repoTree) fill(repoRoot, dir string) error { entries, err := ioutil.ReadDir(filepath.Join(repoRoot, dir)) if err != nil { log.Println(repoRoot, err) @@ -241,13 +241,13 @@ if e.IsDir() { if newRoot := filepath.Join(repoRoot, subName); isRepoDir(newRoot) { ch := makeRepoTree() - parent.children[subName] = ch + t.children[subName] = ch todo[newRoot] = ch } else { - parent.fill(repoRoot, subName) + t.fill(repoRoot, subName) } } else { - parent.entries[subName] = &fileInfo{} + t.entries[subName] = &fileInfo{} } }