Commit Graph

4569 Commits

Author SHA1 Message Date
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
Matthias Beyer 55361f71fe Add struct for passing environment of command to command execute function 2015-12-02 12:24:05 +01:00
Matthias Beyer a9a33321f7 Make command submodule public 2015-12-02 12:24:05 +01:00
Matthias Beyer f94f8870e9 The exec() function of an ExecutableCommand should get the CLI matches as well 2015-12-02 12:24:05 +01:00
Matthias Beyer 4af971a5d0 Make these types public 2015-12-02 12:24:05 +01:00
Matthias Beyer 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
Matthias Beyer 86286cce1b Remove livetimes 2015-12-02 12:24:05 +01:00
Matthias Beyer bfccbc32c5 Add BMModule::add() implementation 2015-12-02 12:24:05 +01:00
Matthias Beyer 0896f2093b Fixed inverted logic in get_tags() 2015-12-02 12:24:05 +01:00
Matthias Beyer 006724a184 Refactor get_tags to return no Option 2015-12-02 12:24:05 +01:00
Matthias Beyer 51f6af6346 We should really use String here 2015-12-02 12:24:05 +01:00
Matthias Beyer cd72295c1a Add function to build header content 2015-12-02 12:24:05 +01:00
Matthias Beyer 9f29f0e1b7 Reject tasks if they contain spaces 2015-12-02 12:24:05 +01:00