a6ed8e1080
Pass id as &FileID in StorageBackend::get_file_by_id()
2015-12-02 12:24:05 +01:00
103cba0c27
Add File::matches_with(&Regex)
2015-12-02 12:24:05 +01:00
e598a475e5
Use prettytable to implement TablePrinter
2015-12-02 12:24:05 +01:00
965779fcaf
Impl Debug for BMModule
2015-12-02 12:24:05 +01:00
e515a70ec2
Rewrite Debug for Module
2015-12-02 12:24:05 +01:00
043e607765
Implement StorageBackendError::cause()
2015-12-02 12:24:05 +01:00
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
144398a2ad
Remove explanation member of StorageBackendError to reduce complexibility
2015-12-02 12:24:05 +01:00
83aa5afcbe
Build ModuleError out of StorageBackendError if any
2015-12-02 12:24:05 +01:00
c3019528cf
ModuleError needs a cause as well
2015-12-02 12:24:05 +01:00
4a6d1a74c0
Retry fixing the StorageBackend::cause()
2015-12-02 12:24:05 +01:00
366121b6ed
Reimplement StorageBackend::update_file()
2015-12-02 12:24:05 +01:00
eabf726846
Outsource file to string parsing
2015-12-02 12:24:05 +01:00
e0fefc3da4
Reimplement StorageBackend::put_file()
2015-12-02 12:24:05 +01:00
21d889e1e2
Add caused_by field in StorageBackend
2015-12-02 12:24:05 +01:00
455d6e88ed
Use real array instead of text array to save tags
2015-12-02 12:24:05 +01:00
cf1687e8ba
Convention: module names are lowercase
2015-12-02 12:24:05 +01:00
1038880de9
Save storepath in extra variable
2015-12-02 12:24:05 +01:00
8a2c41ea22
Fix: Build StorageBackend with runtime
2015-12-02 12:24:05 +01:00
e78bde72c1
Implement add_command() with backend
2015-12-02 12:24:05 +01:00
c9ebe3b7a1
Pass owner to file path builder helper function
2015-12-02 12:24:05 +01:00
98ec735ea3
Add File::owner() - a getter for the owner of a file
2015-12-02 12:24:05 +01:00
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
0d751f9ffd
Add some debug output in StorageBackend::build_filepath_with_id()
2015-12-02 12:24:05 +01:00
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
ff873c8fe3
Transfer old code to new structure
2015-12-02 12:24:05 +01:00
08d6e8da13
We need to unwrap here (and it is save)
2015-12-02 12:24:05 +01:00
fda2c4feea
Add CommandEnv building in command calling code in main()
2015-12-02 12:24:05 +01:00
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
9bf9f96ab1
Fix: ModuleError::mk() -> pub ModuleError::new()
2015-12-02 12:24:05 +01:00
18ea01b854
Pass StorageBackend to subcommand function
2015-12-02 12:24:05 +01:00
3f19aba7b2
Add subcommand calling code in main()
2015-12-02 12:24:05 +01:00
4a73a317d4
Move submodule commands/mod.rs to commands.rs
2015-12-02 12:24:05 +01:00
e10d1bcb65
Reimplement commands for bm
2015-12-02 12:24:05 +01:00
24a6e961af
Change get_commands() for latest trait change
2015-12-02 12:24:05 +01:00
8af9ba48c0
We dont need the command traits anymore
2015-12-02 12:24:05 +01:00
84571bef0a
get_commands() can return a HashMap<str, fn()>, which is command name -> command function
2015-12-02 12:24:05 +01:00
a24d3175dd
We do not have Module::execute() anymore
2015-12-02 12:24:05 +01:00
8404303dbd
Remove BMModule::execute() which is not required by the trait anymore
2015-12-02 12:24:05 +01:00
168852714a
Add modules for commands of BM module
2015-12-02 12:24:05 +01:00
55361f71fe
Add struct for passing environment of command to command execute function
2015-12-02 12:24:05 +01:00
a9a33321f7
Make command submodule public
2015-12-02 12:24:05 +01:00
f94f8870e9
The exec() function of an ExecutableCommand should get the CLI matches as well
2015-12-02 12:24:05 +01:00
4af971a5d0
Make these types public
2015-12-02 12:24:05 +01:00
cbd85b3d8e
Module should only provide functionality to get a list of commands it can execute
...
These commands can then be executed.
2015-12-02 12:24:05 +01:00
86286cce1b
Remove livetimes
2015-12-02 12:24:05 +01:00
bfccbc32c5
Add BMModule::add() implementation
2015-12-02 12:24:05 +01:00
0896f2093b
Fixed inverted logic in get_tags()
2015-12-02 12:24:05 +01:00
006724a184
Refactor get_tags to return no Option
2015-12-02 12:24:05 +01:00
51f6af6346
We should really use String here
2015-12-02 12:24:05 +01:00