Commit graph

39 commits

Author SHA1 Message Date
klauspost
73de59a615 Make check for non-existing paths OS independent. 2015-08-17 11:01:24 +02:00
Alexander Neumann
5cdcc99eba Use array instead of hash for backend.ID
Since backend.ID is always a slice of constant length, use an array
instead of a slice. Mostly, arrays behave as slices, except that an
array cannot be nil, so use `*backend.ID` insteaf of `backend.ID` in
places where the absence of an ID is possible (e.g. for the Subtree of a
Node, which may not present when the node is a file node).

This change allows to directly use backend.ID as the the key for a map,
so that arbitrary data structures (e.g. a Set implemented as a
map[backend.ID]struct{}) can easily be formed.
2015-07-25 18:01:57 +02:00
Alexander Neumann
c0337a2675 Add exclude filter to restorer and 'restore' command 2015-07-20 19:21:01 +02:00
Alexander Neumann
cef57e7abd restorer: Initialize SelectForRestore with default 2015-07-09 20:12:31 +02:00
Alexander Neumann
7255e4feb3 restorer: Move filter to restoreTo() 2015-07-09 20:12:31 +02:00
Alexander Neumann
3e0a97fb13 Fix restore filter
Internally rename restorer.Filter -> restorer.SelectForRestore to make
semantic clear.

In addition, swap parameters to filepath.Match() so that the pattern can
really be matched.

Limitation: The filter only works on the filename, not on any path
component, e.g. '*.go' selects all go files, 'subdir/foo*' doesn't
select anything.

Fixes #202.
2015-07-09 20:12:31 +02:00
Alexander Neumann
1fb8e332ce Restore timestamps for directories earlier 2015-05-14 15:58:26 +02:00
Florian Weingarten
bace4607bf Fix ModTime for directories 2015-05-13 23:11:31 -04:00
Alexander Neumann
95536e8a21 Rename 'Repo' -> 'Repository' 2015-05-09 23:59:58 +02:00
Alexander Neumann
232c472836 Move package 'repo' to package 'repository' 2015-05-09 23:52:03 +02:00
Alexander Neumann
ae21938f3e Rename 'Repository' -> Repo 2015-05-09 17:41:28 +02:00
Alexander Neumann
d9b5832034 Rename variables 2015-05-09 13:47:21 +02:00
Alexander Neumann
87ebf12945 Rename 'Server' to 'Repository' 2015-05-09 13:25:52 +02:00
Alexander Neumann
8be9e95d20 Rename package 'server' to 'repo' 2015-05-09 13:24:15 +02:00
Alexander Neumann
b335de6b81 Add comments to exported methods 2015-05-02 15:23:28 +02:00
Alexander Neumann
97619e743c replace github.com/juju/arrar by /errors 2015-05-02 01:29:54 +02:00
Florian Weingarten
0d9360a815 more cleanup 2015-04-29 22:33:34 -04:00
Florian Weingarten
c9f1f08019 Small refactorings and ceosmetic changes 2015-04-29 20:59:06 -04:00
Alexander Neumann
60a0fe8349 Major restructure, bundle blobs
This commit also breaks the repository format.
2015-04-29 23:27:32 +02:00
Florian Weingarten
4bb724fac2 Refactor node.go 2015-04-29 03:07:22 +00:00
Florian Weingarten
8ba47df8d1 golint 2015-04-28 10:23:13 -04:00
Alexander Neumann
d19b23d4f1 Move Server and Key to new sub-package 2015-04-26 14:46:15 +02:00
Alexander Neumann
f157f775da Add checks for Server.Load(), use Blob for load 2015-03-28 15:07:08 +01:00
Alexander Neumann
f167366be5 Add walk for trees, restructure 2015-03-02 19:58:06 +01:00
Alexander Neumann
4d1e7b9f24 Change parameters of LoadTree() 2015-02-17 22:37:34 +01:00
Alexander Neumann
79e065596f Make CreateAtNodeAt() independend from Tree 2015-02-03 21:04:51 +01:00
Alexander Neumann
203a911de9 Refactor repository structure
Merge Map data type into Tree.
2015-01-14 16:34:30 +01:00
Alexander Neumann
fe231af7fc Remove error from return value of NewContentHandler 2015-01-04 20:07:30 +01:00
Sebastian Schmidt
bd43e27deb Create parent directories for restore items
When restoring an item fails with ENOENT, create parent directories and
try again. This is needed for restoring partial trees (as in: the Filter
function didn't return true for the paths leading up to this restore
item).
2015-01-01 16:40:36 +01:00
Sebastian Schmidt
fb874ea7cc Allow nil 'Filter's for restorer
Allow Filters to be nil and avoid joining the path again if no filter is
used at all.
2015-01-01 16:40:36 +01:00
Sebastian Schmidt
10b99e53e4 Pass "source" path to restorer filter function
The source path is probably more useful here as the user, when
restoring, probably wants to filter for /usr/local/foo instead of
/tmp/restore-whatever/{usr/local/,}foo.
2015-01-01 16:40:36 +01:00
Sebastian Schmidt
ccada7d89a Don't skip subtree on false filter condition when restoring
We still need to descend into subtrees and check if their filter
matches.
2015-01-01 16:40:36 +01:00
Alexander Neumann
ef41a77aff Remove explicit key handling 2014-12-21 18:10:19 +01:00
Alexander Neumann
cc147c002e Introduce type Server 2014-12-21 17:37:29 +01:00
Alexander Neumann
202984a93f Rename snapshot.Content -> snapshot.Tree 2014-12-07 14:14:50 +01:00
Alexander Neumann
e2fea0d088 Rename khepri -> restic 2014-12-05 21:45:49 +01:00
Alexander Neumann
d1e4431514 Refactor StorageMap to BlobList 2014-11-22 21:05:18 +01:00
Alexander Neumann
ff3d0840d8 Fix integration tests
Todo for later:
 * fix Futimes() syscall (will be done in #24)
 * return error in dirdiff when ModTime doesn't match
2014-11-16 12:05:54 +01:00
Alexander Neumann
30ab03b7b7 Add decrypt, refactor 2014-10-03 21:44:55 +02:00