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
Matthias Beyer
8cffdddab2
Split header spec into smaller functions
2015-12-02 12:24:05 +01:00
Matthias Beyer
b76d38f4c6
Rewrite Bookmark FileHeaderSpec
...
One file is one bookmark, so we should have the appropriate header spec
for this.
2015-12-02 12:24:05 +01:00
Matthias Beyer
07f223bb8a
Add header module with spec
2015-12-02 12:24:05 +01:00
Matthias Beyer
de843541f1
Add some debugging output in bm module
2015-12-02 12:24:05 +01:00
Matthias Beyer
15a2480604
Add information on what gets done
2015-12-02 12:24:05 +01:00
Matthias Beyer
750f4cd31c
Start adding the BM submodule
2015-12-02 12:24:05 +01:00
Matthias Beyer
2246ae42e8
Add dep: prettytable
2015-12-02 12:23:58 +01:00
Matthias Beyer
5003b25215
Merge branch 'ui' into master-merger
2015-12-02 12:21:14 +01:00
Matthias Beyer
efe1577f02
TablePrinter should be pub
2015-12-02 12:20:54 +01:00
Matthias Beyer
c3397d5238
Use prettytable to implement TablePrinter
2015-12-02 12:20:52 +01:00
Matthias Beyer
918016368e
Add file printer helpers
2015-12-02 12:20:23 +01:00
Matthias Beyer
78aeddb42e
Merge branch 'storage' into master
2015-12-02 12:07:40 +01:00
Matthias Beyer
2bab3d48e6
Fix JsonHeaderParser::serialize()
2015-12-02 12:00:20 +01:00
Matthias Beyer
7549db4ffc
Fix JsonHeaderParser::visit_json()
2015-12-02 12:00:20 +01:00
Matthias Beyer
500fb281a0
JsonHeaderParser: Make spec optional
2015-12-02 12:00:20 +01:00
Matthias Beyer
34cf5076f9
Reimplement JsonHeaderParser::write()
2015-12-02 12:00:19 +01:00
Matthias Beyer
df18071d9a
Move JsonHeaderParser::new() out of trait implementation
2015-12-02 12:00:19 +01:00