mirror of https://github.com/perkeep/perkeep.git
fs: put all importer roots in the roots folder too
This commit is contained in:
parent
ed889d38be
commit
02eb1a6e97
|
@ -21,12 +21,14 @@ package fs
|
||||||
import (
|
import (
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"camlistore.org/pkg/blob"
|
"camlistore.org/pkg/blob"
|
||||||
"camlistore.org/pkg/schema"
|
"camlistore.org/pkg/schema"
|
||||||
"camlistore.org/pkg/search"
|
"camlistore.org/pkg/search"
|
||||||
|
"camlistore.org/pkg/syncutil"
|
||||||
"camlistore.org/third_party/code.google.com/p/rsc/fuse"
|
"camlistore.org/third_party/code.google.com/p/rsc/fuse"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -87,9 +89,17 @@ func (n *rootsDir) condRefresh() fuse.Error {
|
||||||
}
|
}
|
||||||
log.Printf("fs.roots: querying")
|
log.Printf("fs.roots: querying")
|
||||||
|
|
||||||
req := &search.WithAttrRequest{N: 100, Attr: "camliRoot"}
|
var rootRes, impRes *search.WithAttrResponse
|
||||||
wres, err := n.fs.client.GetPermanodesWithAttr(req)
|
var grp syncutil.Group
|
||||||
if err != nil {
|
grp.Go(func() (err error) {
|
||||||
|
rootRes, err = n.fs.client.GetPermanodesWithAttr(&search.WithAttrRequest{N: 100, Attr: "camliRoot"})
|
||||||
|
return
|
||||||
|
})
|
||||||
|
grp.Go(func() (err error) {
|
||||||
|
impRes, err = n.fs.client.GetPermanodesWithAttr(&search.WithAttrRequest{N: 100, Attr: "camliImportRoot"})
|
||||||
|
return
|
||||||
|
})
|
||||||
|
if err := grp.Err(); err != nil {
|
||||||
log.Printf("fs.recent: GetRecentPermanodes error in ReadDir: %v", err)
|
log.Printf("fs.recent: GetRecentPermanodes error in ReadDir: %v", err)
|
||||||
return fuse.EIO
|
return fuse.EIO
|
||||||
}
|
}
|
||||||
|
@ -97,7 +107,10 @@ func (n *rootsDir) condRefresh() fuse.Error {
|
||||||
dr := &search.DescribeRequest{
|
dr := &search.DescribeRequest{
|
||||||
Depth: 1,
|
Depth: 1,
|
||||||
}
|
}
|
||||||
for _, wi := range wres.WithAttr {
|
for _, wi := range rootRes.WithAttr {
|
||||||
|
dr.BlobRefs = append(dr.BlobRefs, wi.Permanode)
|
||||||
|
}
|
||||||
|
for _, wi := range impRes.WithAttr {
|
||||||
dr.BlobRefs = append(dr.BlobRefs, wi.Permanode)
|
dr.BlobRefs = append(dr.BlobRefs, wi.Permanode)
|
||||||
}
|
}
|
||||||
dres, err := n.fs.client.Describe(dr)
|
dres, err := n.fs.client.Describe(dr)
|
||||||
|
@ -108,7 +121,8 @@ func (n *rootsDir) condRefresh() fuse.Error {
|
||||||
|
|
||||||
n.m = make(map[string]blob.Ref)
|
n.m = make(map[string]blob.Ref)
|
||||||
|
|
||||||
for _, wi := range wres.WithAttr {
|
// Roots
|
||||||
|
for _, wi := range rootRes.WithAttr {
|
||||||
pn := wi.Permanode
|
pn := wi.Permanode
|
||||||
db := dres.Meta[pn.String()]
|
db := dres.Meta[pn.String()]
|
||||||
if db != nil && db.Permanode != nil {
|
if db != nil && db.Permanode != nil {
|
||||||
|
@ -118,6 +132,21 @@ func (n *rootsDir) condRefresh() fuse.Error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Importers (mapped as roots for now)
|
||||||
|
for _, wi := range impRes.WithAttr {
|
||||||
|
pn := wi.Permanode
|
||||||
|
db := dres.Meta[pn.String()]
|
||||||
|
if db != nil && db.Permanode != nil {
|
||||||
|
name := db.Permanode.Attr.Get("camliImportRoot")
|
||||||
|
if name != "" {
|
||||||
|
name = strings.Replace(name, ":", "-", -1)
|
||||||
|
name = strings.Replace(name, "/", "-", -1)
|
||||||
|
n.m["importer-"+name] = pn
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
n.lastQuery = time.Now()
|
n.lastQuery = time.Now()
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue