File tree 1 file changed +33
-0
lines changed
1 file changed +33
-0
lines changed Original file line number Diff line number Diff line change @@ -66,6 +66,39 @@ func (te *TreeEntry) IsSubModule() bool {
66
66
return te .mode == ENTRY_MODE_COMMIT
67
67
}
68
68
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
+
69
102
func (te * TreeEntry ) IsDir () bool {
70
103
return te .mode == ENTRY_MODE_TREE
71
104
}
You can’t perform that action at this time.
0 commit comments