This repository was archived by the owner on Sep 9, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1k
Preliminary status command #8
Merged
Merged
Changes from 8 commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
e8a55eb
Add rudimentary analyzer
sdboyer 3b747c2
Add singleton to handle SourceManager
sdboyer b9bdbda
Get rid of package-level var for SourceMgr
sdboyer 3fe2e20
Merge branch 'sourcemgr' (#7)
sdboyer 26976cb
Tie up root, manifest and lock w/loadProject()
sdboyer 69b5748
Compute the ProjectRoot on the project, as well
sdboyer 1acf3cd
Skeletal initial bits of a status command
sdboyer 84bb5be
Basic, untested implementation for one path
sdboyer acdee23
Fix typos and mistakes in status impl
sdboyer b2fca34
Rename project path-related props for clarity
sdboyer 4f2ec04
Misc cleanups
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
// Copyright 2016 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. | ||
|
||
package main | ||
|
||
import ( | ||
"github.com/Masterminds/semver" | ||
"github.com/sdboyer/gps" | ||
) | ||
|
||
type analyzer struct{} | ||
|
||
func (a analyzer) DeriveManifestAndLock(path string, n gps.ProjectRoot) (gps.Manifest, gps.Lock, error) { | ||
// TODO initial impl would just be looking for our own manifest and lock | ||
return nil, nil, nil | ||
} | ||
|
||
func (a analyzer) Info() (name string, version *semver.Version) { | ||
v, _ := semver.NewVersion("v0.0.1") | ||
return "example-analyzer", v | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
// Copyright 2016 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. | ||
|
||
package main | ||
|
||
import ( | ||
"fmt" | ||
"os" | ||
"path/filepath" | ||
|
||
"github.com/sdboyer/gps" | ||
) | ||
|
||
func getSourceManager() (*gps.SourceMgr, error) { | ||
gopath := os.Getenv("GOPATH") | ||
if gopath == "" { | ||
return nil, fmt.Errorf("GOPATH is not set") | ||
} | ||
// Use the first entry in GOPATH for the depcache | ||
first := filepath.SplitList(gopath)[0] | ||
|
||
return gps.NewSourceManager(analyzer{}, filepath.Join(first, "depcache")) | ||
} |
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What is a root (string) and a projectRoot ? What makes them different?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yeah, i should name the vars better so that it's clearer.
root
is a string that describes the absolute path to the root of the repository. aProjectRoot
, istype ProjectRoot string
, but is specifically intended to be an import path that corresponds to the root of a project/repository.I'm not entirely happy with doing things this way, but as the linked docs note, I did it because being clear about when a string is expected to have the specific properties of being a root project import path, vs just an fs path, vs any import path, are so muddled in a lot of this domain that i wanted a stronger signaling mechanism to implementors about when we needed this type of thing in particular.