{% import "git.gabrielgio.me/cerrado/pkg/u" %} {% import "github.com/go-git/go-git/v5/plumbing/object" %} {% import "github.com/go-git/go-git/v5/plumbing/filemode" %} {% code type GitItemTreePage struct { Path []string Tree *object.Tree } %} {% code const ( Folder = "tree" Blob = "blob" Root = "" ) %} {% code func url(name, mode, ref, filename string, path []string) string { return u.NewPathing(). AddPath(name). AddPath(mode). AddPath(ref). AddPaths(path). AddPath(filename). Done() } %} {% func (g *GitItemTreePage) Nav(name, ref string) %}{%= GitItemNav(name, ref, Tree) %}{% endfunc %} {% func (g *GitItemTreePage) GitContent(name, ref string) %}
{% stripspace %} {% if len(g.Path) != 0 %} root/ {% for i, e := range g.Path[:len(g.Path)-1] %} {%s e %}/ {% endfor %} {%s u.LastOrZero(g.Path) %} {% else %} root/ {% endif %} {% endstripspace %}
{% if len(g.Path) != 0 %}
{% endif %} {% for _, e := range g.Tree.Entries %} {% if e.Mode.IsFile() %}
{%s Ignore(e.Mode.ToOSFileMode()).String() %}
{% elseif e.Mode == filemode.Submodule %}
m---------
{%s e.Name %} (submodule)
{% else %}
d---------
{% endif %}
{%dl Ignore(g.Tree.Size(e.Name))%} KiB
{% endfor %}
{% endfunc %}