mirror of
				https://github.com/go-gitea/gitea
				synced 2025-10-26 17:08:25 +00:00 
			
		
		
		
	Symlinks are followed when you click on a link next to an entry, either until a file has been found or until we know that the link is dead. When the link cannot be accessed, we fall back to the current behavior of showing the document containing the target. --------- Co-authored-by: wxiaoguang <wxiaoguang@gmail.com>
		
			
				
	
	
		
			32 lines
		
	
	
		
			849 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			32 lines
		
	
	
		
			849 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2025 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package fileicon
 | |
| 
 | |
| import "code.gitea.io/gitea/modules/git"
 | |
| 
 | |
| type EntryInfo struct {
 | |
| 	BaseName      string
 | |
| 	EntryMode     git.EntryMode
 | |
| 	SymlinkToMode git.EntryMode
 | |
| 	IsOpen        bool
 | |
| }
 | |
| 
 | |
| func EntryInfoFromGitTreeEntry(commit *git.Commit, fullPath string, gitEntry *git.TreeEntry) *EntryInfo {
 | |
| 	ret := &EntryInfo{BaseName: gitEntry.Name(), EntryMode: gitEntry.Mode()}
 | |
| 	if gitEntry.IsLink() {
 | |
| 		if res, err := git.EntryFollowLink(commit, fullPath, gitEntry); err == nil && res.TargetEntry.IsDir() {
 | |
| 			ret.SymlinkToMode = res.TargetEntry.Mode()
 | |
| 		}
 | |
| 	}
 | |
| 	return ret
 | |
| }
 | |
| 
 | |
| func EntryInfoFolder() *EntryInfo {
 | |
| 	return &EntryInfo{EntryMode: git.EntryModeTree}
 | |
| }
 | |
| 
 | |
| func EntryInfoFolderOpen() *EntryInfo {
 | |
| 	return &EntryInfo{EntryMode: git.EntryModeTree, IsOpen: true}
 | |
| }
 |