1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-28 08:47:42 +08:00

cmd/ipfs: Added an ipfsHandler constructor

This commit is contained in:
Matt Bell
2014-12-12 20:50:02 -08:00
parent 64cb1b6bf8
commit cb84a376bd
2 changed files with 25 additions and 8 deletions

View File

@ -165,8 +165,10 @@ func listenAndServeAPI(node *core.IpfsNode, req cmds.Request, addr ma.Multiaddr)
cmdHandler := cmdsHttp.NewHandler(*req.Context(), commands.Root, origin)
mux.Handle(cmdsHttp.ApiPath+"/", cmdHandler)
ifpsHandler := &ipfsHandler{node: node}
ifpsHandler.LoadTemplate()
ifpsHandler, err := NewIpfsHandler(node)
if err != nil {
return err
}
mux.Handle("/ipfs/", ifpsHandler)
@ -203,7 +205,10 @@ func listenAndServeGateway(node *core.IpfsNode, addr ma.Multiaddr) error {
server := manners.NewServer()
mux := http.NewServeMux()
ifpsHandler := &ipfsHandler{node}
ifpsHandler, err := NewIpfsHandler(node)
if err != nil {
return err
}
mux.Handle("/ipfs/", ifpsHandler)
done := make(chan struct{}, 1)

View File

@ -40,13 +40,25 @@ type ipfsHandler struct {
dirList *template.Template
}
func NewIpfsHandler(node *core.IpfsNode) (*ipfsHandler, error) {
i := &ipfsHandler{
node: node,
}
err := i.loadTemplate()
if err != nil {
return nil, err
}
return i, nil
}
// Load the directroy list template
func (i *ipfsHandler) LoadTemplate() {
func (i *ipfsHandler) loadTemplate() error {
t, err := template.New("dir").Parse(listingTemplate)
if err != nil {
log.Error(err)
return err
}
i.dirList = t
return nil
}
func (i *ipfsHandler) ResolvePath(path string) (*dag.Node, error) {
@ -175,9 +187,9 @@ var listingTemplate = `
<body>
<h2>Index of {{ .path }}</h2>
<ul>
<li> <a href="./..">Parent</a></li>
{{ range $item := .listing }}
<li> <a href="./{{ $item.Name }}">{{ $item.Name }}</a> - {{ $item.Size }} bytes</li>
<li><a href="./..">..</a></li>
{{ range $item := .listing }}
<li><a href="./{{ $item.Name }}">{{ $item.Name }}</a> - {{ $item.Size }} bytes</li>
{{ end }}
</ul>
</body>