This commit is contained in:
Alex Goodman 2019-10-07 18:25:53 -04:00
parent 2640bdced8
commit fcb5ec01ef
No known key found for this signature in database
GPG Key ID: 98AF011C5C78EB7E
13 changed files with 52 additions and 59 deletions

View File

@ -49,7 +49,7 @@ func NewFileInfo(realPath, path string, info os.FileInfo) FileInfo {
var linkName string var linkName string
var size int64 var size int64
if info.Mode() & os.ModeSymlink != 0 { if info.Mode()&os.ModeSymlink != 0 {
fileType = tar.TypeSymlink fileType = tar.TypeSymlink
linkName, err = os.Readlink(realPath) linkName, err = os.Readlink(realPath)

View File

@ -179,7 +179,6 @@ func (img *ImageArchive) ToImage() (*image.Image, error) {
layers = append(layers, dockerLayer.ToLayer()) layers = append(layers, dockerLayer.ToLayer())
} }
return &image.Image{ return &image.Image{
Trees: trees, Trees: trees,
Layers: layers, Layers: layers,

View File

@ -14,7 +14,6 @@ type layer struct {
tree *filetree.FileTree tree *filetree.FileTree
} }
// String represents a layer in a columnar format. // String represents a layer in a columnar format.
func (l *layer) ToLayer() *image.Layer { func (l *layer) ToLayer() *image.Layer {
id := strings.Split(l.tree.Name, "/")[0] id := strings.Split(l.tree.Name, "/")[0]

View File

@ -13,7 +13,7 @@ import (
"golang.org/x/net/context" "golang.org/x/net/context"
) )
type resolver struct {} type resolver struct{}
func NewResolver() *resolver { func NewResolver() *resolver {
return &resolver{} return &resolver{}
@ -100,4 +100,3 @@ func (r *resolver) fetchArchive(id string) (io.ReadCloser, error) {
return readCloser, nil return readCloser, nil
} }

View File

@ -76,7 +76,7 @@ func processLayer(name, rootDir string) (*filetree.FileTree, error) {
return err return err
} }
// add this file to the tree... // add this file to the tree...
relativeImagePath := "/"+strings.TrimPrefix(strings.TrimPrefix(path, rootDir), "/") relativeImagePath := "/" + strings.TrimPrefix(strings.TrimPrefix(path, rootDir), "/")
fileInfo := filetree.NewFileInfo(path, relativeImagePath, info) fileInfo := filetree.NewFileInfo(path, relativeImagePath, info)
tree.FileSize += uint64(fileInfo.Size) tree.FileSize += uint64(fileInfo.Size)

View File

@ -11,7 +11,7 @@ import (
"os" "os"
) )
type resolver struct {} type resolver struct{}
func NewResolver() *resolver { func NewResolver() *resolver {
return &resolver{} return &resolver{}
@ -25,7 +25,6 @@ func (r *resolver) Build(args []string) (*image.Image, error) {
return r.Fetch(id) return r.Fetch(id)
} }
func (r *resolver) Fetch(id string) (*image.Image, error) { func (r *resolver) Fetch(id string) (*image.Image, error) {
img, err := r.resolveFromDisk(id) img, err := r.resolveFromDisk(id)
if err == nil { if err == nil {
@ -57,7 +56,7 @@ func (r *resolver) resolveFromDisk(id string) (*image.Image, error) {
return nil, err return nil, err
} }
ImageLoop: ImageLoop:
for _, candidateImage := range images { for _, candidateImage := range images {
for _, name := range candidateImage.Names() { for _, name := range candidateImage.Names() {
if name == id { if name == id {
@ -108,7 +107,7 @@ func (r *resolver) fetchDockerArchive(id string) (string, error) {
return "", err return "", err
} }
for _, item:= range images { for _, item := range images {
for _, name := range item.Names() { for _, name := range item.Names() {
if name == id { if name == id {
file, err := ioutil.TempFile(os.TempDir(), "dive-resolver-tar") file, err := ioutil.TempFile(os.TempDir(), "dive-resolver-tar")

View File

@ -14,7 +14,7 @@ type export struct {
func NewExport(analysis *diveImage.AnalysisResult) *export { func NewExport(analysis *diveImage.AnalysisResult) *export {
data := export{ data := export{
Layer: make([]layer, len(analysis.Layers)), Layer: make([]layer, len(analysis.Layers)),
Image: image { Image: image{
InefficientFiles: make([]fileReference, len(analysis.Inefficiencies)), InefficientFiles: make([]fileReference, len(analysis.Inefficiencies)),
SizeBytes: analysis.SizeBytes, SizeBytes: analysis.SizeBytes,
EfficiencyScore: analysis.Efficiency, EfficiencyScore: analysis.Efficiency,

View File

@ -134,7 +134,7 @@ func (controller *DetailsController) Render() error {
if currentLayer.Names != nil && len(currentLayer.Names) > 0 { if currentLayer.Names != nil && len(currentLayer.Names) > 0 {
lines = append(lines, Formatting.Header("Tags: ")+strings.Join(currentLayer.Names, ", ")) lines = append(lines, Formatting.Header("Tags: ")+strings.Join(currentLayer.Names, ", "))
} else { } else {
lines = append(lines, Formatting.Header("Tags: ")+ "(none)") lines = append(lines, Formatting.Header("Tags: ")+"(none)")
} }
lines = append(lines, Formatting.Header("Id: ")+currentLayer.Id) lines = append(lines, Formatting.Header("Id: ")+currentLayer.Id)
lines = append(lines, Formatting.Header("Digest: ")+currentLayer.Digest) lines = append(lines, Formatting.Header("Digest: ")+currentLayer.Digest)

View File

@ -72,8 +72,6 @@ func assertTestData(t *testing.T, actualBytes []byte) {
helperCheckDiff(t, expectedBytes, actualBytes) helperCheckDiff(t, expectedBytes, actualBytes)
} }
func initializeTestViewModel(t *testing.T) *FileTreeViewModel { func initializeTestViewModel(t *testing.T) *FileTreeViewModel {
result := docker.TestAnalysisFromArchive(t, "../../.data/test-docker-image.tar") result := docker.TestAnalysisFromArchive(t, "../../.data/test-docker-image.tar")

View File

@ -131,7 +131,6 @@ func toggleFilterView(g *gocui.Gui, v *gocui.View) error {
return err return err
} }
return nil return nil
} }