Commit graph

158 commits

Author SHA1 Message Date
4675f79aae remove_command(): Be able to run in "checked" mode 2015-12-02 12:24:05 +01:00
c81d0bf0a8 Implement remove_command() 2015-12-02 12:24:05 +01:00
484b1fb865 Outsource file retrieving from list_command() into helper function 2015-12-02 12:24:05 +01:00
6fcccc8297 Implement list_command 2015-12-02 12:24:05 +01:00
42181afde5 Add tags_of_file() to extract tags from a File 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
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
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
e78bde72c1 Implement add_command() with backend 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
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
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
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
cd72295c1a Add function to build header content 2015-12-02 12:24:05 +01:00
9f29f0e1b7 Reject tasks if they contain spaces 2015-12-02 12:24:05 +01:00
8cffdddab2 Split header spec into smaller functions 2015-12-02 12:24:05 +01:00
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
07f223bb8a Add header module with spec 2015-12-02 12:24:05 +01:00
de843541f1 Add some debugging output in bm module 2015-12-02 12:24:05 +01:00
15a2480604 Add information on what gets done 2015-12-02 12:24:05 +01:00
750f4cd31c Start adding the BM submodule 2015-12-02 12:24:05 +01:00
869cc5e5ab Fix: unused import 2015-11-27 16:59:51 +01:00
56612cf1a0 Fix: unused import 2015-11-27 16:59:44 +01:00
99a2670803 Add module/command trait 2015-11-10 20:43:53 +01:00
ba91e7ee26 The module itself has to be populate the Command instance
This will be done by the module returning a lambda to build the
command instance.
2015-11-10 20:43:35 +01:00
f4dbec72ee Add storage/backend setup 2015-11-10 20:43:30 +01:00
e73701ace4 Remove old todo module code 2015-11-10 20:33:47 +01:00
7f224e8f58 Replace all output with macros from logging library 2015-10-26 20:58:52 +01:00
9fb50dac68 Fix type for ModuleError::mk() 2015-10-25 19:54:54 +01:00
4d83b7c63f Implement Module for TodoModule 2015-10-25 18:43:47 +01:00
911384331b Add ModuleError 2015-10-25 18:43:47 +01:00
7036f93936 Fixup TodoModule::new() 2015-10-25 18:43:47 +01:00
c50d097831 Cleanup module confusion 2015-10-25 18:43:47 +01:00
63daf452dc Add todo module 2015-10-25 18:43:47 +01:00
034d71b21d Rewrite 2015-10-25 18:43:46 +01:00
bff720018c Module trait cleanups 2015-10-25 18:43:46 +01:00