Commit Graph

577 Commits

Author SHA1 Message Date
Matthias Beyer 873efa7475 Add dep: itertools 2016-01-03 15:21:34 +01:00
Matthias Beyer 4721e44dd5 Make Markdown helper module pub 2016-01-03 15:21:11 +01:00
Matthias Beyer 4d3479291d Refactor custom functionality in helper function 2016-01-03 14:51:21 +01:00
Matthias Beyer 7b99aee552 Rewrite markdown parsing, so we can extract links and quotes (and maybe more) 2016-01-03 14:51:15 +01:00
Matthias Beyer c35cd7ef15 Add String to URL list helper with markdown parser 2016-01-03 14:51:05 +01:00
Matthias Beyer 7b14aafa9f Notes: Add command_links() stub 2016-01-03 14:50:15 +01:00
Matthias Beyer 9ac388c2b6 Notes: Add command_edit() 2016-01-02 20:06:31 +01:00
Matthias Beyer 8ac798687a Add File::set_data() 2016-01-02 20:06:31 +01:00
Matthias Beyer 6b105f41d2 Add: ui::external::editor::edit_content() 2016-01-02 20:06:21 +01:00
Matthias Beyer ee2d96a9a2 Notes: command_add() -> let user provide content 2016-01-02 20:06:21 +01:00
Matthias Beyer 7ac5111cde Fix let_user_provide_content() 2016-01-02 20:06:21 +01:00
Matthias Beyer 2b8bd86ce1 Runtime::editor() should provide a Command object 2016-01-02 20:06:21 +01:00
Matthias Beyer ad1a0e7f47 configuration should return editor_opts() -> String 2016-01-02 20:06:21 +01:00
Matthias Beyer d68d0088e8 main: Include Notes module 2016-01-02 20:06:21 +01:00
Matthias Beyer db7a4abbd8 Notes: Implement command_set_tags 2016-01-02 20:06:21 +01:00
Matthias Beyer 445a9885cf Notes: Implement command_rm_tags 2016-01-02 20:06:20 +01:00
Matthias Beyer e42d7f7f8d Notes: Implement command_add_tags() 2016-01-02 20:06:20 +01:00
Matthias Beyer 1bccf067bf Provide header-rebuilder helper 2016-01-02 20:06:20 +01:00
Matthias Beyer 9227c4bb9a Move header-altering helper to module generic helpers
This helper is for editing the header tags in some module-independent
way, so this piece of code is now moved to the module-generic helpers.
2016-01-02 20:06:20 +01:00
Matthias Beyer 6d02e3d486 Module trait: Module must be able to lend a Runtime object 2016-01-02 20:06:20 +01:00
Matthias Beyer 7cd429fe7e Notes: Implement command_remove 2016-01-02 20:06:20 +01:00
Matthias Beyer 852b624417 Notes: Implement command_list() 2016-01-02 20:06:20 +01:00
Matthias Beyer 591717780a Notes: Add helper to get name from header 2016-01-02 18:47:42 +01:00
Matthias Beyer 5cc4b4d079 Notes: Implement command_add() 2016-01-02 18:47:42 +01:00
Matthias Beyer 8a9f4c370e Initial import of code for Notes module 2016-01-02 18:45:10 +01:00
Matthias Beyer a49113cb5f Refactor filter building into types which can be chained up
State before was to generate functions which can be used as filter()
arguments.

State now is that there are types which can be lined up and be executed
as filters. And/Or/Not-Filters are provided and so are helper functions
to initialize objects of these filter types.

The BM module is adapted for this.
2016-01-02 18:37:17 +01:00
Homu a2037f3909 Auto merge of #45 - matthiasbeyer:bm-command-output, r=matthiasbeyer
Bm command output

Add info-output to some BM commands.
2016-01-03 00:30:10 +09:00
Homu 9a82ccd2d1 Auto merge of #44 - matthiasbeyer:bm-open-xdg, r=matthiasbeyer
Bm open xdg

Add subcommand to `BM` to open links via xdg.

Closes #28
2016-01-03 00:25:31 +09:00
Matthias Beyer bdfaac0c76 Add info output to BM-add command 2016-01-02 16:15:30 +01:00
Matthias Beyer 4c95e403e9 Add information output to BM-remove 2016-01-02 16:09:44 +01:00
Matthias Beyer 89101719ad Add bm-open command 2016-01-02 16:03:01 +01:00
Matthias Beyer 77d2b189fb Configuration does not store verbose/debugging flag information 2016-01-02 15:39:57 +01:00
Matthias Beyer 6272bfd3a9 Refactor configuration: Simplify codebase
- fetch_config() exits if the config parsing fails
- Simplified the build process of the Configuration object
2016-01-02 15:37:06 +01:00
Matthias Beyer 745f57e480 ImagLogger can be configured through the CLI only now 2016-01-02 15:29:11 +01:00
Homu bbcf0e2dba Auto merge of #40 - matthiasbeyer:cleanup, r=matthiasbeyer
Cleanup

Codebase cleanup
2016-01-02 07:51:58 +09:00
Matthias Beyer 911c248c39 Store::remove(): Move function so we have a better order 2016-01-01 23:45:14 +01:00
Matthias Beyer c681b24ef4 Store::load() should load, not Store::put_in_cache()
Store::put_in_cache (not put_into_cache) is now called inside ::load()
if the key is not yet in the cache.

The Store::load() function cached its interface for this. It can also be
used by the other functions in the Store object to load content.
2016-01-01 23:45:14 +01:00
Matthias Beyer f802b00974 Rewrite Store::load_in_cache() to check cache before loading 2016-01-01 23:26:04 +01:00
Matthias Beyer d6bd011d95 Add try!() around write!() 2015-12-30 23:02:05 +01:00
Matthias Beyer 37f3c90914 Remove dead code 2015-12-30 23:02:05 +01:00
Matthias Beyer a2856d8671 Remove unused imports 2015-12-30 23:02:05 +01:00
Matthias Beyer 708f2bcff1 Added indent for readability 2015-12-30 18:50:09 +01:00
Matthias Beyer 37588a9f3d Remove hello-world output 2015-12-30 18:48:28 +01:00
Matthias Beyer 8f46056a08 BM::command_list() add filter functionality 2015-12-30 15:14:26 +01:00
Matthias Beyer 7bbe1bb6d0 Refactor: Provide generic cli-to-filter-function generator
The refactors functions from the BM module into more generic functions
for all modules.

The previous state was, that there were functions in the BM module which
were used to load from the store and applying some filters.

The new state is that there are functions to generate the filter
functions which are then used to filter the loaded files from the store,
so we can apply some more functionality on the filtered list.
2015-12-30 15:06:22 +01:00
Matthias Beyer 09aa7d9ec3 Add debug output to text-from-header fetcher function 2015-12-30 15:06:02 +01:00
Matthias Beyer d15d50d8a2 Refactor: Header helper code can use generic function 2015-12-30 15:05:52 +01:00
Matthias Beyer eed57af0bb module header helpers: Add function to get NAME from header 2015-12-30 15:05:47 +01:00
Homu 25045b7345 Auto merge of #34 - matthiasbeyer:doc, r=matthiasbeyer
Add some documentation

Still does not produce the documentation I want, though it basically works now.
2015-12-30 17:54:41 +09:00
Matthias Beyer c106af5618 Remove all the crap and implement temp-file editor calling 2015-12-30 09:49:15 +01:00
Matthias Beyer 7248eef3be configuration fixup editor 2015-12-30 03:02:19 +01:00
Matthias Beyer bab5614247 runtime.rs: Add options to editor string 2015-12-30 02:53:41 +01:00
Matthias Beyer 70fbd3914e configuration.rs: Add function to fetch editor options 2015-12-30 02:53:41 +01:00
Matthias Beyer 6ff2ac3567 cli.rs: Add function to fetch editor options 2015-12-30 02:53:41 +01:00
Matthias Beyer 6179c9e73f runtime.rs: Add possibility to fetch editor 2015-12-30 02:53:41 +01:00
Matthias Beyer 4f8a545aac cli.rs: Add possibility to fetch editor 2015-12-30 02:53:41 +01:00
Matthias Beyer 89878f7024 configuration.rs: Add possibility to fetch editor 2015-12-30 02:53:41 +01:00
Matthias Beyer 1647352a13 Use modules publicly, so "cargo doc" generates documentation 2015-12-30 02:10:50 +01:00
Matthias Beyer c4a388925e Add doc to util::is_url() 2015-12-29 18:20:56 +01:00
Matthias Beyer 43bf526740 Add docs to ui/file.rs 2015-12-29 18:20:56 +01:00
Matthias Beyer 2334b0bc8a Add docs to FileHash 2015-12-29 18:20:56 +01:00
Matthias Beyer d25a0dd1c0 Add docs to FileIDType 2015-12-29 18:20:56 +01:00
Matthias Beyer d34143e516 Add docs to FileID 2015-12-29 18:20:56 +01:00
Matthias Beyer 6bcfc0a4b2 Add docs to File 2015-12-29 18:20:56 +01:00
Matthias Beyer 3a7bf9f4de Add doc to parser code 2015-12-29 18:20:56 +01:00
Matthias Beyer 5791ba7b8d Add doc to Store object implementation 2015-12-29 18:20:56 +01:00
Matthias Beyer be233b8aba Add docs to BM module 2015-12-29 18:20:56 +01:00
Matthias Beyer ffcb951468 Add doc to module header helpers 2015-12-29 18:20:56 +01:00
Matthias Beyer e9cee25ac8 Add doc to module helpers 2015-12-29 18:20:56 +01:00
Matthias Beyer 271c91e903 Add documentation on module helper utils 2015-12-29 18:20:56 +01:00
Matthias Beyer dc181ba8eb Add doc to Module trait 2015-12-29 18:20:56 +01:00
Matthias Beyer 89cc625133 runtime.rs: Add docs to functions 2015-12-29 18:20:56 +01:00
Matthias Beyer bbc6218391 configuration.rs: Add documentation 2015-12-29 18:20:56 +01:00
Matthias Beyer 0d6f2b9500 cli.rs: Add documentation to functions 2015-12-29 18:20:56 +01:00
Matthias Beyer 808e44339a Implement TempFileError and traits for it 2015-12-29 16:00:08 +01:00
Matthias Beyer 900ffcb7d1 Add ui submodules to talk to external programs, editor in this case 2015-12-29 16:00:08 +01:00
Matthias Beyer e3b22d488d Remove box-syntax in test 2015-12-29 15:10:09 +01:00
Matthias Beyer e21da820c4 Fix test for to use FileID::parse() 2015-12-29 15:10:09 +01:00
Matthias Beyer b5da0cb613 Fix use... in test modules 2015-12-29 15:01:35 +01:00
Matthias Beyer 248b5c7574 Merge branch 'debug' 2015-12-28 21:55:08 +01:00
Matthias Beyer 6ca4818302 Add File::set_header() 2015-12-28 21:51:08 +01:00
Matthias Beyer 68f66ca27d Add BM::command_set_tags() 2015-12-28 21:51:08 +01:00
Matthias Beyer bcbd568311 Add BM::command_rm_tags() 2015-12-28 21:51:08 +01:00
Matthias Beyer 7e401b5881 Add generic alter_tags_in_files() function 2015-12-28 21:51:08 +01:00
Matthias Beyer 966e9902cb BM header helpers: Add set_tags_in_header() 2015-12-28 21:25:51 +01:00
Matthias Beyer 46b7ae9384 Add BM::command_add_tags() 2015-12-28 20:53:13 +01:00
Matthias Beyer 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
Matthias Beyer e84986680d Add functions to get files from Store by certain predicated (id, match, tags) 2015-12-28 19:42:35 +01:00
Matthias Beyer db204f3cba BM::command_add(): Add URL verification 2015-12-28 18:47:17 +01:00
Matthias Beyer 16d40e9bfe Add util: is_url(String) -> bool 2015-12-28 18:47:17 +01:00
Matthias Beyer 9db5ffa842 Implement BM::command_remove() 2015-12-28 18:02:32 +01:00
Matthias Beyer c2469b83ce Add debug output to Store::load_in_cache() 2015-12-28 17:39:00 +01:00
Matthias Beyer 302549d194 Fixup Store::load_by_hash() 2015-12-28 17:39:00 +01:00
Matthias Beyer 3a5bb3a5ce Add Store::load_by_hash() 2015-12-28 17:39:00 +01:00
Matthias Beyer 5a55636c65 Implement: BM: command_list() 2015-12-28 17:38:59 +01:00
Matthias Beyer bd9abf3bc7 Add Store::load_in_cache(... FileID) 2015-12-28 17:38:59 +01:00
Matthias Beyer 7170f95825 BM header helpers: Add get_url_from_header() 2015-12-28 17:38:59 +01:00
Matthias Beyer 2e7621d2bd Add header helpers for BM 2015-12-28 17:38:59 +01:00
Matthias Beyer e346f56a8e Fix: BM module name 2015-12-28 17:38:59 +01:00
Matthias Beyer fda7fd56b9 Fix: Argument for BM::exec() 2015-12-28 17:38:59 +01:00
Matthias Beyer 523e6f8f66 Implement: BM::command_add() 2015-12-28 17:38:59 +01:00
Matthias Beyer df27e5d2a3 BM subcommands: Pass ArgMatches 2015-12-28 17:38:59 +01:00
Matthias Beyer c432e8c2c4 Add subcommand calling code 2015-12-28 17:38:59 +01:00
Matthias Beyer 81ead3c68c Add debug output to FileID::parse() 2015-12-28 17:35:55 +01:00
Matthias Beyer f24db1eb7d Add debug output to Store::remove() 2015-12-28 17:35:55 +01:00
Matthias Beyer e9ea485ed5 Add debug output to Store::load_in_cache() 2015-12-28 17:35:55 +01:00
Matthias Beyer 4ea83d538f Add Store::load_by_hash() 2015-12-28 17:35:55 +01:00
Matthias Beyer 62ee1d4e96 Add Store::load_for_module() 2015-12-28 17:35:20 +01:00
Matthias Beyer 3a2c8b091e Add Store::load_in_cache(... FileID) 2015-12-28 17:35:13 +01:00
Matthias Beyer c6f31496ab Module helpers: header: Add get_url_from_header() 2015-12-28 17:35:07 +01:00
Matthias Beyer 24e1ea2522 Fix: Debug for File implementation 2015-12-28 17:34:56 +01:00
Matthias Beyer d20ace3e80 Add Store::ensure_store_path_exists() 2015-12-28 17:34:47 +01:00
Matthias Beyer c97f4bab56 Add Store::remove(FileID) 2015-12-28 14:40:56 +01:00
Matthias Beyer bb97778fbb Rename table title 2015-12-28 14:30:45 +01:00
Matthias Beyer 1fde80800b Allow the custom function to return an Vec<String> in the FilePrinter trait 2015-12-28 14:29:44 +01:00
Matthias Beyer 51605e1314 Impl FilePrinter for TablePrinter ::print_files_custom() 2015-12-28 13:56:53 +01:00
Matthias Beyer 6455c45630 Impl FilePrinter for SimplePrinter ::print_file_custom() 2015-12-28 13:56:38 +01:00
Matthias Beyer f0c186f33b Impl FilePrinter for DebugPrinter ::print_file_custom() 2015-12-28 13:56:20 +01:00
Matthias Beyer fc42d6b4bf FilePrinter: Add print_file_custom(), print_files_custom() 2015-12-28 13:56:01 +01:00
Matthias Beyer 74aab89fbb ui: Change to take Rc<RefCell<File>> instead of File 2015-12-28 13:36:44 +01:00
Matthias Beyer c8a0c1168d Initialize store in Runtime object, pass store path directly into Store object 2015-12-28 00:39:55 +01:00
Matthias Beyer 656aa69bfd Implement Store::persist() 2015-12-28 00:30:25 +01:00
Matthias Beyer 8145b21404 Fix: Parser::write() can get reference tuple 2015-12-28 00:29:45 +01:00
Matthias Beyer 0212fb1929 Fix: Add missing dash 2015-12-28 00:29:21 +01:00
Matthias Beyer 23e4152aaa Implement Store::load() 2015-12-28 00:04:54 +01:00
Matthias Beyer f29bcc7430 Store: Put file into cache, return FileID 2015-12-27 23:51:44 +01:00
Matthias Beyer 470f1b1378 Save only module name in File, not whole module 2015-12-27 23:46:08 +01:00
Matthias Beyer f774effabb File: Return inner contents as references, not cloned 2015-12-27 23:26:23 +01:00
Matthias Beyer 030b5fc888 Fixup Store 2015-12-27 23:18:55 +01:00
Matthias Beyer c595f5a1e8 Move File-creation code to Store 2015-12-27 23:17:51 +01:00
Matthias Beyer cb2c512440 Add Store type 2015-12-27 23:17:51 +01:00
Matthias Beyer 73c7281259 Make File members pub 2015-12-27 23:17:51 +01:00
Matthias Beyer 736c3784a9 Derive: Eq, PartialEq for FileID 2015-12-27 23:17:51 +01:00
Matthias Beyer 6676611f4b Derive Hash for FileIDType 2015-12-27 23:02:34 +01:00
Matthias Beyer f60c540ee5 Derive: Hash for FileID 2015-12-27 23:02:20 +01:00
Matthias Beyer 4c252577f2 Derive: Hash for FileHash 2015-12-27 23:02:06 +01:00
Marcel Müller 22b57d5ad9 Implement FromStr for FileIDType 2015-12-27 18:55:27 +01:00
Matthias Beyer 65aa98607e Add File::persist() 2015-12-27 18:52:25 +01:00
Matthias Beyer 8029057b22 Add File::edit_contents() 2015-12-27 18:52:19 +01:00
Matthias Beyer 961fb27f99 Add File::edit() 2015-12-27 18:52:02 +01:00
Matthias Beyer 4cac382412 Fixup Into<str> for Path -> Impl as Into<String> for Path 2015-12-27 18:00:56 +01:00
Matthias Beyer 3273e77d24 Fixup Into<str> for Path 2015-12-27 18:00:56 +01:00
Matthias Beyer 312bcf9703 Fixup File::get_new_file_id() 2015-12-27 18:00:56 +01:00
Matthias Beyer 003efb6296 Fixup Into<str> for Path 2015-12-27 18:00:56 +01:00
Matthias Beyer 71bf650653 Fixup FileIDType::parse 2015-12-27 18:00:56 +01:00
Matthias Beyer 2585472349 impl Into<String> for FileID 2015-12-27 18:00:56 +01:00
Matthias Beyer 1fc1c73b4a impl Into<String> for FileIDType 2015-12-27 18:00:56 +01:00
Matthias Beyer fab2dece59 When generating a new FileID, use the FileHash type 2015-12-27 18:00:31 +01:00
Matthias Beyer 62150c5a61 Add missing lifetimes 2015-12-27 18:00:31 +01:00
Matthias Beyer 63bbede00f Add missing 'use ...' 2015-12-27 18:00:31 +01:00