@cryptotaxi247 / kubo / commits / cb84a376b

cmd/ipfs: Added an ipfsHandler constructor

Matt Bell committed Dec 12, 2014 at 20:50 UTC cb84a376bd5e2a9a1e1c320631505c5f0f1650b6
2 files changed +25 -8
cmd/ipfs/daemon.go
+8 -3
@@ -165,8 +165,10 @@ func listenAndServeAPI(node *core.IpfsNode, req cmds.Request, addr ma.Multiaddr)
165 cmdHandler := cmdsHttp.NewHandler(*req.Context(), commands.Root, origin)
166 mux.Handle(cmdsHttp.ApiPath+"/", cmdHandler)
167
168 - ifpsHandler := &ipfsHandler{node: node}
169 - ifpsHandler.LoadTemplate()
168 + ifpsHandler, err := NewIpfsHandler(node)
169 + if err != nil {
170 + return err
171 + }
172
173 mux.Handle("/ipfs/", ifpsHandler)
174
@@ -203,7 +205,10 @@ func listenAndServeGateway(node *core.IpfsNode, addr ma.Multiaddr) error {
205
206 server := manners.NewServer()
207 mux := http.NewServeMux()
206 - ifpsHandler := &ipfsHandler{node}
208 + ifpsHandler, err := NewIpfsHandler(node)
209 + if err != nil {
210 + return err
211 + }
212 mux.Handle("/ipfs/", ifpsHandler)
213
214 done := make(chan struct{}, 1)
cmd/ipfs/ipfsHandler.go
+17 -5
@@ -40,13 +40,25 @@ type ipfsHandler struct {
40 dirList *template.Template
41 }
42
43 +func NewIpfsHandler(node *core.IpfsNode) (*ipfsHandler, error) {
44 + i := &ipfsHandler{
45 + node: node,
46 + }
47 + err := i.loadTemplate()
48 + if err != nil {
49 + return nil, err
50 + }
51 + return i, nil
52 +}
53 +
54 // Load the directroy list template
44 -func (i *ipfsHandler) LoadTemplate() {
55 +func (i *ipfsHandler) loadTemplate() error {
56 t, err := template.New("dir").Parse(listingTemplate)
57 if err != nil {
47 - log.Error(err)
58 + return err
59 }
60 i.dirList = t
61 + return nil
62 }
63
64 func (i *ipfsHandler) ResolvePath(path string) (*dag.Node, error) {
@@ -175,9 +187,9 @@ var listingTemplate = `
187 <body>
188 <h2>Index of {{ .path }}</h2>
189 <ul>
178 - <li> <a href="./..">Parent</a></li>
179 - {{ range $item := .listing }}
180 - <li> <a href="./{{ $item.Name }}">{{ $item.Name }}</a> - {{ $item.Size }} bytes</li>
190 + <li><a href="./..">..</a></li>
191 + {{ range $item := .listing }}
192 + <li><a href="./{{ $item.Name }}">{{ $item.Name }}</a> - {{ $item.Size }} bytes</li>
193 {{ end }}
194 </ul>
195 </body>