94ae6c8e796678075e93b12c248e171ad3dbbd11

Author
Ayman Bagabas <ayman.bagabas@gmail.com>
Committer
Ayman Bagabas <ayman.bagabas@gmail.com>
Date

Message

feat(backend/utils): follow symlink to get file contents

Diff

 1diff --git a/server/backend/utils.go b/server/backend/utils.go
 2index ed68a88dd174521eccf8863feecc94154e0df44f..c6cdff4db8d7d4d36b90d75e53235a95a369731e 100644
 3--- a/server/backend/utils.go
 4+++ b/server/backend/utils.go
 5@@ -29,12 +29,24 @@ func LatestFile(r Repository, pattern string) (string, string, error) {
 6 		return "", "", err
 7 	}
 8 	for _, e := range ents {
 9-		fp := filepath.Join(dir, e.Name())
10-		if e.IsTree() {
11+		te := e
12+		fp := filepath.Join(dir, te.Name())
13+		if te.IsTree() {
14 			continue
15 		}
16 		if g.Match(fp) {
17-			bts, err := e.Contents()
18+			if te.IsSymlink() {
19+				bts, err := te.Contents()
20+				if err != nil {
21+					return "", "", err
22+				}
23+				fp = string(bts)
24+				te, err = t.TreeEntry(fp)
25+				if err != nil {
26+					return "", "", err
27+				}
28+			}
29+			bts, err := te.Contents()
30 			if err != nil {
31 				return "", "", err
32 			}