Commit graph

158 commits

Author SHA1 Message Date
09aa7d9ec3 Add debug output to text-from-header fetcher function 2015-12-30 15:06:02 +01:00
d15d50d8a2 Refactor: Header helper code can use generic function 2015-12-30 15:05:52 +01:00
eed57af0bb module header helpers: Add function to get NAME from header 2015-12-30 15:05:47 +01:00
be233b8aba Add docs to BM module 2015-12-29 18:20:56 +01:00
ffcb951468 Add doc to module header helpers 2015-12-29 18:20:56 +01:00
e9cee25ac8 Add doc to module helpers 2015-12-29 18:20:56 +01:00
271c91e903 Add documentation on module helper utils 2015-12-29 18:20:56 +01:00
dc181ba8eb Add doc to Module trait 2015-12-29 18:20:56 +01:00
68f66ca27d Add BM::command_set_tags() 2015-12-28 21:51:08 +01:00
bcbd568311 Add BM::command_rm_tags() 2015-12-28 21:51:08 +01:00
7e401b5881 Add generic alter_tags_in_files() function 2015-12-28 21:51:08 +01:00
966e9902cb BM header helpers: Add set_tags_in_header() 2015-12-28 21:25:51 +01:00
46b7ae9384 Add BM::command_add_tags() 2015-12-28 20:53:13 +01:00
cbefa577e9 Use get_files() to filter files, remove afterwards
Change get_files() signature, so we know whether there was a filter
applied, so we can abort the action if there was no filter involved.
2015-12-28 19:46:59 +01:00
e84986680d Add functions to get files from Store by certain predicated (id, match, tags) 2015-12-28 19:42:35 +01:00
db204f3cba BM::command_add(): Add URL verification 2015-12-28 18:47:17 +01:00
9db5ffa842 Implement BM::command_remove() 2015-12-28 18:02:32 +01:00
5a55636c65 Implement: BM: command_list() 2015-12-28 17:38:59 +01:00
7170f95825 BM header helpers: Add get_url_from_header() 2015-12-28 17:38:59 +01:00
2e7621d2bd Add header helpers for BM 2015-12-28 17:38:59 +01:00
e346f56a8e Fix: BM module name 2015-12-28 17:38:59 +01:00
523e6f8f66 Implement: BM::command_add() 2015-12-28 17:38:59 +01:00
df27e5d2a3 BM subcommands: Pass ArgMatches 2015-12-28 17:38:59 +01:00
c432e8c2c4 Add subcommand calling code 2015-12-28 17:38:59 +01:00
c6f31496ab Module helpers: header: Add get_url_from_header() 2015-12-28 17:35:07 +01:00
62150c5a61 Add missing lifetimes 2015-12-27 18:00:31 +01:00
00d0bbf4ae Add basic interface for BM module 2015-12-27 18:00:28 +01:00
dd7b412976 Remove code 2015-12-21 19:20:09 +01:00
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