// Copyright 2015 The Gogs Authors. All rights reserved. // Use of this source code is governed by a MIT-style // license that can be found in the LICENSE file. package git import ( "path" "strings" ) // GetTreeEntryByPath get the tree entries accroding the sub dir func (t *Tree) GetTreeEntryByPath(relpath string) (*TreeEntry, error) { if len(relpath) == 0 { return &TreeEntry{ ID: t.ID, Type: ObjectTree, mode: EntryModeTree, }, nil } relpath = path.Clean(relpath) parts := strings.Split(relpath, "/") var err error tree := t for i, name := range parts { if i == len(parts)-1 { entries, err := tree.ListEntries() if err != nil { return nil, err } for _, v := range entries { if v.name == name { return v, nil } } } else { tree, err = tree.SubTree(name) if err != nil { return nil, err } } } return nil, ErrNotExist{"", relpath} } // GetBlobByPath get the blob object accroding the path func (t *Tree) GetBlobByPath(relpath string) (*Blob, error) { entry, err := t.GetTreeEntryByPath(relpath) if err != nil { return nil, err } if !entry.IsDir() { return entry.Blob(), nil } return nil, ErrNotExist{"", relpath} } tion value='release/v1.15'>release/v1.15 Git with a cup of tea! Painless self-hosted all-in-one software development service, including Git hosting, code review, team collaboration, package registry and CI/CD: https://github.com/go-gitea/giteawww-data
aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/net/proxy/direct.go
blob: 3d66bdef9d7493931859e181d22dff1892b8d1ef (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31