diff options
Diffstat (limited to 'pkg/handler/git')
| -rw-r--r-- | pkg/handler/git/handler.go | 20 | 
1 files changed, 16 insertions, 4 deletions
| diff --git a/pkg/handler/git/handler.go b/pkg/handler/git/handler.go index fd62e44..5e50122 100644 --- a/pkg/handler/git/handler.go +++ b/pkg/handler/git/handler.go @@ -233,6 +233,12 @@ func (g *GitHandler) Tree(w http.ResponseWriter, r *http.Request) error {  	name := r.PathValue("name")  	ref := r.PathValue("ref")  	rest := r.PathValue("rest") +	paths := []string{} + +	// this is avoid Split from generating a len 1 array with empty string +	if rest != "" { +		paths = strings.Split(rest, "/") +	}  	tree, err := g.gitService.GetTree(name, ref, rest)  	if err != nil { @@ -243,8 +249,8 @@ func (g *GitHandler) Tree(w http.ResponseWriter, r *http.Request) error {  		Name: name,  		Ref:  ref,  		GitItemBase: &templates.GitItemTreePage{ -			CurrentPath: rest, -			Tree:        tree, +			Path: paths, +			Tree: tree,  		},  	}  	templates.WritePageTemplate(w, gitList) @@ -256,6 +262,12 @@ func (g *GitHandler) Blob(w http.ResponseWriter, r *http.Request) error {  	name := r.PathValue("name")  	ref := r.PathValue("ref")  	rest := r.PathValue("rest") +	paths := []string{} + +	// this is avoid Split from generating a len 1 array with empty string +	if rest != "" { +		paths = strings.Split(rest, "/") +	}  	isBin, err := g.gitService.IsBinary(name, ref, rest)  	if err != nil { @@ -268,7 +280,7 @@ func (g *GitHandler) Blob(w http.ResponseWriter, r *http.Request) error {  			Name: name,  			Ref:  ref,  			GitItemBase: &templates.GitItemBlobPage{ -				File:    rest, +				Path:    paths,  				Content: []byte("Binary file"),  			},  		} @@ -303,7 +315,7 @@ func (g *GitHandler) Blob(w http.ResponseWriter, r *http.Request) error {  		Name: name,  		Ref:  ref,  		GitItemBase: &templates.GitItemBlobPage{ -			File:    rest, +			Path:    paths,  			Content: code.Bytes(),  		},  	} | 
