예제 #1
0
파일: decode.go 프로젝트: keep94/Dominator
func (decoderData *decoderData) addSymlink(header *tar.Header,
	parent *filesystem.DirectoryInode, name string) error {
	var newInode filesystem.SymlinkInode
	newInode.Uid = uint32(header.Uid)
	newInode.Gid = uint32(header.Gid)
	newInode.Symlink = header.Linkname
	decoderData.addEntry(parent, header.Name, name, &newInode)
	return nil
}
예제 #2
0
파일: walk.go 프로젝트: datatonic/Dominator
func scanSymlinkInode(inode *filesystem.SymlinkInode, fileSystem *FileSystem,
	myPathName string) error {
	target, err := os.Readlink(path.Join(fileSystem.rootDirectoryName,
		myPathName))
	if err != nil {
		return err
	}
	inode.Symlink = target
	return nil
}
예제 #3
0
func (decoderData *decoderData) addSymlink(header *tar.Header,
	parent *filesystem.Directory, name string) error {
	var newInode filesystem.SymlinkInode
	newInode.Uid = uint32(header.Uid)
	newInode.Gid = uint32(header.Gid)
	newInode.Symlink = header.Linkname
	decoderData.symlinkInodeTable[header.Name] = decoderData.nextInodeNumber
	decoderData.fileSystem.SymlinkInodeTable[decoderData.nextInodeNumber] =
		&newInode
	var newEntry filesystem.Symlink
	newEntry.Name = name
	newEntry.InodeNumber = decoderData.nextInodeNumber
	parent.SymlinkList = append(parent.SymlinkList, &newEntry)
	decoderData.nextInodeNumber++
	return nil
}