Matthias Beyer
292e29a5f1
Backend: Use FileID::from()
2015-12-02 13:43:09 +01:00
Matthias Beyer
d3bdb39468
Reimplement FileID as abstract type, use Into, From traits for conversion
2015-12-02 13:43:09 +01:00
Matthias Beyer
3664c59a5e
Merge branch 'path-to-id'
2015-12-02 13:06:29 +01:00
Matthias Beyer
e93aa4ceae
Refactor uses of file-id-parsing functions to ensure we honnor the Result type
2015-12-02 13:06:08 +01:00
Matthias Beyer
3e94e1612f
Add FileIDResult<FileID, FileIDError>
2015-12-02 13:05:48 +01:00
Matthias Beyer
80643c0c89
Merge branch 'bm' into master
2015-12-02 12:29:31 +01:00
Matthias Beyer
05a9803c05
Fixup: Member name
2015-12-02 12:29:04 +01:00
Matthias Beyer
9231049e30
Remove StorageBackend::build()
2015-12-02 12:28:41 +01:00
Matthias Beyer
731d13e0ba
Create store path on storage backend creation
2015-12-02 12:24:05 +01:00
Matthias Beyer
abee4d4904
Implement StorageBackend::remove_file()
2015-12-02 12:24:05 +01:00
Matthias Beyer
4675f79aae
remove_command(): Be able to run in "checked" mode
2015-12-02 12:24:05 +01:00
Matthias Beyer
c81d0bf0a8
Implement remove_command()
2015-12-02 12:24:05 +01:00
Matthias Beyer
484b1fb865
Outsource file retrieving from list_command() into helper function
2015-12-02 12:24:05 +01:00
Matthias Beyer
e6e56b9a92
Add flag --check / -c
...
We have to ensure that there are no references to this bookmark entry
from other modules.
2015-12-02 12:24:05 +01:00
Matthias Beyer
6fcccc8297
Implement list_command
2015-12-02 12:24:05 +01:00
Matthias Beyer
42181afde5
Add tags_of_file() to extract tags from a File
2015-12-02 12:24:05 +01:00
Matthias Beyer
a6ed8e1080
Pass id as &FileID in StorageBackend::get_file_by_id()
2015-12-02 12:24:05 +01:00
Matthias Beyer
103cba0c27
Add File::matches_with(&Regex)
2015-12-02 12:24:05 +01:00
Matthias Beyer
e598a475e5
Use prettytable to implement TablePrinter
2015-12-02 12:24:05 +01:00
Matthias Beyer
965779fcaf
Impl Debug for BMModule
2015-12-02 12:24:05 +01:00
Matthias Beyer
e515a70ec2
Rewrite Debug for Module
2015-12-02 12:24:05 +01:00
Matthias Beyer
043e607765
Implement StorageBackendError::cause()
2015-12-02 12:24:05 +01:00
Matthias Beyer
f060c89751
Add helper for building file prefix
...
This helper builds the file prefix for the files of a module.
2015-12-02 12:24:05 +01:00
Matthias Beyer
144398a2ad
Remove explanation member of StorageBackendError to reduce complexibility
2015-12-02 12:24:05 +01:00
Matthias Beyer
83aa5afcbe
Build ModuleError out of StorageBackendError if any
2015-12-02 12:24:05 +01:00
Matthias Beyer
c3019528cf
ModuleError needs a cause as well
2015-12-02 12:24:05 +01:00
Matthias Beyer
4a6d1a74c0
Retry fixing the StorageBackend::cause()
2015-12-02 12:24:05 +01:00
Matthias Beyer
366121b6ed
Reimplement StorageBackend::update_file()
2015-12-02 12:24:05 +01:00
Matthias Beyer
eabf726846
Outsource file to string parsing
2015-12-02 12:24:05 +01:00
Matthias Beyer
e0fefc3da4
Reimplement StorageBackend::put_file()
2015-12-02 12:24:05 +01:00
Matthias Beyer
21d889e1e2
Add caused_by field in StorageBackend
2015-12-02 12:24:05 +01:00
Matthias Beyer
455d6e88ed
Use real array instead of text array to save tags
2015-12-02 12:24:05 +01:00
Matthias Beyer
cf1687e8ba
Convention: module names are lowercase
2015-12-02 12:24:05 +01:00
Matthias Beyer
1038880de9
Save storepath in extra variable
2015-12-02 12:24:05 +01:00
Matthias Beyer
8a2c41ea22
Fix: Build StorageBackend with runtime
2015-12-02 12:24:05 +01:00
Matthias Beyer
e78bde72c1
Implement add_command() with backend
2015-12-02 12:24:05 +01:00
Matthias Beyer
c9ebe3b7a1
Pass owner to file path builder helper function
2015-12-02 12:24:05 +01:00
Matthias Beyer
98ec735ea3
Add File::owner() - a getter for the owner of a file
2015-12-02 12:24:05 +01:00
Matthias Beyer
593e98ac5d
A File is bound to a Module
...
A File object must be bound to a Module, as one Module owns the File.
This way we can use the Module internally to build the file path later.
2015-12-02 12:24:05 +01:00
Matthias Beyer
0d751f9ffd
Add some debug output in StorageBackend::build_filepath_with_id()
2015-12-02 12:24:05 +01:00
Matthias Beyer
7531b5a6d7
Pass module to subcommand.
...
We need the module in the subcommand for building file paths and so on.
To be able to pass it, we must remove the ::new() function from the
trait, so we can make the parameter a trait object.
This is no object, as the module gets build non-generically from the
main(), so everything is fine with this.
2015-12-02 12:24:05 +01:00
Matthias Beyer
ff873c8fe3
Transfer old code to new structure
2015-12-02 12:24:05 +01:00
Matthias Beyer
08d6e8da13
We need to unwrap here (and it is save)
2015-12-02 12:24:05 +01:00
Matthias Beyer
fda2c4feea
Add CommandEnv building in command calling code in main()
2015-12-02 12:24:05 +01:00
Matthias Beyer
0a026002b0
Pass CommandEnv struct to command exec function
...
So we can add parameters rather easily.
Also define CommandResult as result type.
2015-12-02 12:24:05 +01:00
Matthias Beyer
9bf9f96ab1
Fix: ModuleError::mk() -> pub ModuleError::new()
2015-12-02 12:24:05 +01:00
Matthias Beyer
18ea01b854
Pass StorageBackend to subcommand function
2015-12-02 12:24:05 +01:00
Matthias Beyer
3f19aba7b2
Add subcommand calling code in main()
2015-12-02 12:24:05 +01:00
Matthias Beyer
4a73a317d4
Move submodule commands/mod.rs to commands.rs
2015-12-02 12:24:05 +01:00
Matthias Beyer
e10d1bcb65
Reimplement commands for bm
2015-12-02 12:24:05 +01:00