Commit Graph

281 Commits

Author SHA1 Message Date
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
Matthias Beyer 24a6e961af Change get_commands() for latest trait change 2015-12-02 12:24:05 +01:00
Matthias Beyer 8af9ba48c0 We dont need the command traits anymore 2015-12-02 12:24:05 +01:00
Matthias Beyer 84571bef0a get_commands() can return a HashMap<str, fn()>, which is command name -> command function 2015-12-02 12:24:05 +01:00
Matthias Beyer a24d3175dd We do not have Module::execute() anymore 2015-12-02 12:24:05 +01:00
Matthias Beyer 8404303dbd Remove BMModule::execute() which is not required by the trait anymore 2015-12-02 12:24:05 +01:00
Matthias Beyer 168852714a Add modules for commands of BM module 2015-12-02 12:24:05 +01:00