1
0
mirror of https://github.com/ipfs/kubo.git synced 2025-06-29 01:12:24 +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) cmdHandler := cmdsHttp.NewHandler(*req.Context(), commands.Root, origin)
mux.Handle(cmdsHttp.ApiPath+"/", cmdHandler) mux.Handle(cmdsHttp.ApiPath+"/", cmdHandler)
ifpsHandler := &ipfsHandler{node: node} ifpsHandler, err := NewIpfsHandler(node)
ifpsHandler.LoadTemplate() if err != nil {
return err
}
mux.Handle("/ipfs/", ifpsHandler) mux.Handle("/ipfs/", ifpsHandler)
@ -203,7 +205,10 @@ func listenAndServeGateway(node *core.IpfsNode, addr ma.Multiaddr) error {
server := manners.NewServer() server := manners.NewServer()
mux := http.NewServeMux() mux := http.NewServeMux()
ifpsHandler := &ipfsHandler{node} ifpsHandler, err := NewIpfsHandler(node)
if err != nil {
return err
}
mux.Handle("/ipfs/", ifpsHandler) mux.Handle("/ipfs/", ifpsHandler)
done := make(chan struct{}, 1) done := make(chan struct{}, 1)

View File

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