@@ -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
7797func  getFileList (parentReader  * tar.Reader , h  * tar.Header ) []FileChangeInfo  {
0 commit comments