mirror of
https://github.com/octoleo/restic.git
synced 2025-01-03 15:17:28 +00:00
Merge pull request #1299 from mungomat/fuse_addSnapshotIDs
fuse: Add a snapshot IDs directory (#1102)
This commit is contained in:
commit
6a62254048
@ -56,6 +56,7 @@ func NewRoot(ctx context.Context, repo restic.Repository, cfg Config) (*Root, er
|
|||||||
"snapshots": NewSnapshotsDir(root, fs.GenerateDynamicInode(root.inode, "snapshots"), snapshots),
|
"snapshots": NewSnapshotsDir(root, fs.GenerateDynamicInode(root.inode, "snapshots"), snapshots),
|
||||||
"tags": NewTagsDir(root, fs.GenerateDynamicInode(root.inode, "tags"), snapshots),
|
"tags": NewTagsDir(root, fs.GenerateDynamicInode(root.inode, "tags"), snapshots),
|
||||||
"hosts": NewHostsDir(root, fs.GenerateDynamicInode(root.inode, "hosts"), snapshots),
|
"hosts": NewHostsDir(root, fs.GenerateDynamicInode(root.inode, "hosts"), snapshots),
|
||||||
|
"ids": NewSnapshotsIDSDir(root, fs.GenerateDynamicInode(root.inode, "ids"), snapshots),
|
||||||
}
|
}
|
||||||
|
|
||||||
root.MetaDir = NewMetaDir(root, rootInode, entries)
|
root.MetaDir = NewMetaDir(root, rootInode, entries)
|
||||||
|
@ -66,6 +66,26 @@ func NewSnapshotsDir(root *Root, inode uint64, snapshots restic.Snapshots) *Snap
|
|||||||
return d
|
return d
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NewSnapshotsIDSDir returns a new directory containing snapshots named by ids.
|
||||||
|
func NewSnapshotsIDSDir(root *Root, inode uint64, snapshots restic.Snapshots) *SnapshotsDir {
|
||||||
|
debug.Log("create snapshots ids dir with %d snapshots, inode %d", len(snapshots), inode)
|
||||||
|
d := &SnapshotsDir{
|
||||||
|
root: root,
|
||||||
|
inode: inode,
|
||||||
|
snapshots: snapshots,
|
||||||
|
names: make(map[string]*restic.Snapshot, len(snapshots)),
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, sn := range snapshots {
|
||||||
|
name := sn.ID().Str()
|
||||||
|
|
||||||
|
d.names[name] = sn
|
||||||
|
debug.Log(" add snapshot %v", name)
|
||||||
|
}
|
||||||
|
|
||||||
|
return d
|
||||||
|
}
|
||||||
|
|
||||||
// Attr returns the attributes for the root node.
|
// Attr returns the attributes for the root node.
|
||||||
func (d *SnapshotsDir) Attr(ctx context.Context, attr *fuse.Attr) error {
|
func (d *SnapshotsDir) Attr(ctx context.Context, attr *fuse.Attr) error {
|
||||||
attr.Inode = d.inode
|
attr.Inode = d.inode
|
||||||
|
Loading…
Reference in New Issue
Block a user