feat(tvix/castore): add RenamedNode helper
This takes a castorev1pb.Node and updates its name, making sure to copy it. Change-Id: I57bf2b2b4a74496a1a697bcbce72bf67a12e69fe Reviewed-on: https://cl.tvl.fyi/c/depot/+/9594 Autosubmit: flokli <flokli@flokli.de> Tested-by: BuildkiteCI Reviewed-by: Brian McGee <brian@bmcgee.ie>
This commit is contained in:
		
							parent
							
								
									78abeaa920
								
							
						
					
					
						commit
						abf9c05090
					
				
					 1 changed files with 38 additions and 0 deletions
				
			
		
							
								
								
									
										38
									
								
								tvix/castore/protos/rename_node.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								tvix/castore/protos/rename_node.go
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
					@ -0,0 +1,38 @@
 | 
				
			||||||
 | 
					package castorev1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// RenamedNode returns a node with a new name.
 | 
				
			||||||
 | 
					func RenamedNode(node *Node, name string) *Node {
 | 
				
			||||||
 | 
						if directoryNode := node.GetDirectory(); directoryNode != nil {
 | 
				
			||||||
 | 
							return &Node{
 | 
				
			||||||
 | 
								Node: &Node_Directory{
 | 
				
			||||||
 | 
									Directory: &DirectoryNode{
 | 
				
			||||||
 | 
										Name:   []byte(name),
 | 
				
			||||||
 | 
										Digest: directoryNode.GetDigest(),
 | 
				
			||||||
 | 
										Size:   directoryNode.GetSize(),
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else if fileNode := node.GetFile(); fileNode != nil {
 | 
				
			||||||
 | 
							return &Node{
 | 
				
			||||||
 | 
								Node: &Node_File{
 | 
				
			||||||
 | 
									File: &FileNode{
 | 
				
			||||||
 | 
										Name:       []byte(name),
 | 
				
			||||||
 | 
										Digest:     fileNode.GetDigest(),
 | 
				
			||||||
 | 
										Size:       fileNode.GetSize(),
 | 
				
			||||||
 | 
										Executable: fileNode.GetExecutable(),
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else if symlinkNode := node.GetSymlink(); symlinkNode != nil {
 | 
				
			||||||
 | 
							return &Node{
 | 
				
			||||||
 | 
								Node: &Node_Symlink{
 | 
				
			||||||
 | 
									Symlink: &SymlinkNode{
 | 
				
			||||||
 | 
										Name:   []byte(name),
 | 
				
			||||||
 | 
										Target: symlinkNode.GetTarget(),
 | 
				
			||||||
 | 
									},
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						} else {
 | 
				
			||||||
 | 
							panic("unreachable")
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue