Skip to content

Commit 5805de5

Browse files
print ordered layer tree
1 parent 2a4e6b7 commit 5805de5

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

tar-read.go

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@ func main() {
2828
tarReader := tar.NewReader(f)
2929
targetName := "manifest.json"
3030
var m Manifest
31-
var trees []*Tree
31+
var layerMap map[string]*Tree
32+
layerMap = make(map[string]*Tree)
3233
for {
3334
header, err := tarReader.Next()
3435

@@ -54,12 +55,13 @@ func main() {
5455
if strings.HasSuffix(name, "layer.tar") {
5556
fmt.Println("Containing:")
5657
tree := NewTree()
57-
tree.name = strings.TrimSuffix(name, "layer.tar")
58+
tree.name = name
59+
fmt.Printf("%s\n", tree.name)
5860
fileInfos := getFileList(tarReader, header)
5961
for _, element := range fileInfos {
6062
tree.AddPath(element.path, element)
6163
}
62-
trees = append(trees, tree)
64+
layerMap[tree.name] = tree
6365
}
6466
default:
6567
fmt.Printf("%s : %c %s %s\n",
@@ -70,8 +72,26 @@ func main() {
7072
)
7173
}
7274
}
73-
fmt.Printf("%+v\n", m)
74-
fmt.Printf("%+v\n", trees)
75+
var trees []*Tree
76+
trees = make([]*Tree, 0)
77+
for _, treeName := range m.Layers {
78+
fmt.Printf("%s\n", treeName)
79+
trees = append(trees, layerMap[treeName])
80+
}
81+
82+
for ix := range trees {
83+
if ix > 0 {
84+
trees[0].Stack(trees[ix])
85+
}
86+
}
87+
// fmt.Printf("%+v\n", m)
88+
// fmt.Printf("%+v\n", layerMap)
89+
// fmt.Printf("%+v\n", trees)
90+
// fmt.Printf("Tree 1 is: \n %+v\n", trees[1])
91+
// fmt.Printf("Tree 2 is: \n %+v\n", trees[2])
92+
// trees[1].Stack(trees[2])
93+
// fmt.Printf("Tree 1 stacked with tree 2 is: \n %+v\n", trees[1])
94+
fmt.Printf("The whle stack is \n %+v \n", trees[0])
7595
}
7696

7797
func getFileList(parentReader *tar.Reader, h *tar.Header) []FileChangeInfo {

0 commit comments

Comments
 (0)