188aacad75
Move FileHeader{Spec,Data} to own submodules
2015-12-06 13:09:51 +01:00
6e0d0058b0
Move key generating to top-level spec helpers
2015-12-06 12:49:31 +01:00
dad856ff2a
Move get_tags() from BM module to module utilities
2015-12-06 12:49:31 +01:00
7d40b68407
Rename: StorageBackend -> Storage
2015-12-06 12:49:02 +01:00
da2b482bda
Move Storage Backend code imag::storage::backend -> imag::storage
2015-12-06 12:47:08 +01:00
ab3ada0914
Move header helpers from module/header/ to module/helpers/
2015-12-05 16:03:05 +01:00
c6a2d39981
Outsource header utilities into header helper
2015-12-05 16:01:30 +01:00
9f59478da0
Readability fixes
2015-12-05 11:10:54 +01:00
93393751b2
Remove uneccessary variable
2015-12-05 11:06:22 +01:00
80563cb340
Move tag filtering to sub-function
2015-12-05 11:05:50 +01:00
e8c7df4593
Remove variable, use expression directly
2015-12-05 11:03:05 +01:00
166a0cf5dd
bm: remove_command: Refactor into sub-functions
2015-12-05 11:00:44 +01:00
230d00f35a
Remove unused imports
2015-12-05 01:23:06 +01:00
f7a92b6e79
Resort "use"
...
First comes std stuff
Second is external crates
Then we have own modules
All in alphabetical order and as few lines as possible if readability is
preserved.
2015-12-05 01:14:13 +01:00
55f740497b
Beautify get_tags() helper
2015-12-04 23:26:08 +01:00
cd1bb88f20
Rework remove_command()
2015-12-04 23:19:18 +01:00
87d5852986
Ensure we dont crash if there are no files found
2015-12-04 23:01:37 +01:00
08fa8f8655
Add debugging output
2015-12-04 21:56:48 +01:00
c1d497fa6a
Add URL check before adding the "url" to the store
2015-12-04 15:09:03 +01:00
04df3fdf3c
Rewrite BMModule::get_filtered_files_from_backend() with the backend speaking Result<> now instead of Option<>
2015-12-04 14:17:32 +01:00
40ae26d0f2
BMModule::list_command() - we get back an Result<> here
2015-12-04 14:17:03 +01:00
bcc9771f28
module/bm/commands: Use FileID::into()
2015-12-02 13:43:09 +01:00
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