Skip to content

Commit 34a42ad

Browse files
committed
Add jumpable information on dir
1 parent 76e8cce commit 34a42ad

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

tree_entry.go

+33
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,39 @@ func (te *TreeEntry) IsSubModule() bool {
6666
return te.mode == ENTRY_MODE_COMMIT
6767
}
6868

69+
func (te *TreeEntry) JumpableName() string {
70+
entry := te
71+
for entry.IsJumpableDir() {
72+
tree, _ := entry.ptree.SubTree(entry.name)
73+
entries, _ := tree.ListEntries()
74+
entry = entries[0]
75+
}
76+
return entry.name
77+
}
78+
func (te *TreeEntry) JumpablePath() string {
79+
path := ""
80+
entry := te
81+
for entry.IsJumpableDir() {
82+
path += entry.name + "/"
83+
tree, _ := entry.ptree.SubTree(entry.name)
84+
entries, _ := tree.ListEntries()
85+
entry = entries[0]
86+
}
87+
return path
88+
}
89+
90+
func (te *TreeEntry) IsJumpableDir() bool {
91+
if te.IsSubModule() || !te.IsDir() {
92+
return false
93+
}
94+
tree, err := te.ptree.SubTree(te.name)
95+
if err != nil {
96+
return false
97+
}
98+
entries, err := tree.ListEntries()
99+
return len(entries) == 1 //TODO
100+
}
101+
69102
func (te *TreeEntry) IsDir() bool {
70103
return te.mode == ENTRY_MODE_TREE
71104
}

0 commit comments

Comments
 (0)