Commit Graph

577 Commits

Author SHA1 Message Date
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
Matthias Beyer 8c2af3e931 Add Path type 2015-12-27 18:00:31 +01:00
Matthias Beyer 85a199ffc8 Add module file for storage 2015-12-27 18:00:31 +01:00
Matthias Beyer 00d0bbf4ae Add basic interface for BM module 2015-12-27 18:00:28 +01:00
Matthias Beyer 7e77d786bb Remove old code, FileIDType::NONE does not exist, we use Option<> 2015-12-21 19:28:15 +01:00
Matthias Beyer dcec155505 Move FileIDType to new module, export publicly 2015-12-21 19:20:09 +01:00
Matthias Beyer 8a7d4b8aaf Add FileHash type, custom type for an ID 2015-12-21 19:20:09 +01:00
Matthias Beyer dd7b412976 Remove code 2015-12-21 19:20:09 +01:00
Matthias Beyer 3212429c9e Impl Debug for Parser 2015-12-19 11:47:24 +01:00
Matthias Beyer d5af28d98d Impl {Display,Debug} for JsonHeaderParser 2015-12-19 11:47:24 +01:00
Matthias Beyer ee78c249f0 Remove leftover file from storage backend moving 2015-12-06 13:15:07 +01:00
Matthias Beyer 188aacad75 Move FileHeader{Spec,Data} to own submodules 2015-12-06 13:09:51 +01:00
Matthias Beyer 3b89148cd0 Move storage/file_id.rs -> storage/file/id.rs 2015-12-06 13:02:21 +01:00
Matthias Beyer 95f6f2e97e Move file.rs to subdirectory 2015-12-06 13:01:02 +01:00
Matthias Beyer 6e0d0058b0 Move key generating to top-level spec helpers 2015-12-06 12:49:31 +01:00
Matthias Beyer dad856ff2a Move get_tags() from BM module to module utilities 2015-12-06 12:49:31 +01:00
Matthias Beyer 7d40b68407 Rename: StorageBackend -> Storage 2015-12-06 12:49:02 +01:00
Matthias Beyer da2b482bda Move Storage Backend code imag::storage::backend -> imag::storage 2015-12-06 12:47:08 +01:00
Matthias Beyer ab3ada0914 Move header helpers from module/header/ to module/helpers/ 2015-12-05 16:03:05 +01:00
Matthias Beyer c6a2d39981 Outsource header utilities into header helper 2015-12-05 16:01:30 +01:00
Matthias Beyer 3a8f2b5493 Refactor: dont use helper but StorageBackendError::new() directly 2015-12-05 15:01:46 +01:00
Matthias Beyer e6a32eafc0 Outsource StorageBackendError building into helper function 2015-12-05 14:24:58 +01:00
Matthias Beyer 9f59478da0 Readability fixes 2015-12-05 11:10:54 +01:00
Matthias Beyer 93393751b2 Remove uneccessary variable 2015-12-05 11:06:22 +01:00
Matthias Beyer 80563cb340 Move tag filtering to sub-function 2015-12-05 11:05:50 +01:00
Matthias Beyer e8c7df4593 Remove variable, use expression directly 2015-12-05 11:03:05 +01:00
Matthias Beyer 166a0cf5dd bm: remove_command: Refactor into sub-functions 2015-12-05 11:00:44 +01:00
Matthias Beyer 75cedc1580 Move to rust stable (1.4 atm) so we can use clap 2015-12-05 10:45:33 +01:00
Matthias Beyer 230d00f35a Remove unused imports 2015-12-05 01:23:06 +01:00
Matthias Beyer 1f8bdef1ed Remove unused variables 2015-12-05 01:18:12 +01:00
Matthias Beyer 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
Matthias Beyer 5953563671 Refactor for readability 2015-12-04 23:39:30 +01:00
Matthias Beyer f8e870312e Outsource: ids iterator to files vector 2015-12-04 23:35:48 +01:00
Matthias Beyer 55f740497b Beautify get_tags() helper 2015-12-04 23:26:08 +01:00
Matthias Beyer cd1bb88f20 Rework remove_command() 2015-12-04 23:19:18 +01:00
Matthias Beyer 848fb0b4b4 Ensure we build the globstring _with_ the ID in it 2015-12-04 23:11:59 +01:00
Matthias Beyer 261fbdd038 Add id getter for FileID 2015-12-04 23:11:46 +01:00
Matthias Beyer 87d5852986 Ensure we dont crash if there are no files found 2015-12-04 23:01:37 +01:00
Matthias Beyer fd3d2ec8dc Fixup get_file_by_id() 2015-12-04 22:57:28 +01:00
Matthias Beyer 6473b743a3 Outsource globlist -> Vec<FileID> transformation code snippet 2015-12-04 22:53:31 +01:00
Matthias Beyer dac4911ea2 (partly) Rewrite StorageBackend::get_file_by_id(), so we can get a file with a partially available ID 2015-12-04 22:49:00 +01:00
Matthias Beyer 253658ece5 Fix: FileID::from() should also succeed if we pass a ID as string 2015-12-04 22:31:09 +01:00
Matthias Beyer 2dfb76bd0d Reimplement: Parser::divide_text() 2015-12-04 21:56:48 +01:00
Matthias Beyer 5c38e6752b Fixup glob string generating 2015-12-04 21:56:48 +01:00
Matthias Beyer 08fa8f8655 Add debugging output 2015-12-04 21:56:48 +01:00
Matthias Beyer 2b21d1cb47 StorageBackend::iter_files(): Add caused_by use 2015-12-04 21:56:48 +01:00
Matthias Beyer 90e3f44005 StorageBackend::iter_ids(): Add caused_by() usage
Actually not, as there is no Error implementation for the error we get
to handle here.
2015-12-04 21:56:48 +01:00
Matthias Beyer 87d9ca7d06 Print table only if there are entries 2015-12-04 21:56:48 +01:00
Matthias Beyer b6c1a6301f Use ParserError::with_cause() and build new ParserError object 2015-12-04 21:56:48 +01:00
Matthias Beyer 3a76c05317 ParserError: Add cause 2015-12-04 21:56:47 +01:00
Matthias Beyer 1aaea39b3d storage/parser::divide_text(): Add debug output 2015-12-04 21:56:33 +01:00
Matthias Beyer e72c1c68b9 Fix: Output formatting
The header-content separator dashes were completely missing. Shame on
me.
2015-12-04 21:56:33 +01:00
Matthias Beyer e31239b02b Fix wording in debug message 2015-12-04 21:56:33 +01:00
Matthias Beyer 915cbd24ef Impl From<PathBuf> for FileID, using From<String> for FileID 2015-12-04 21:56:33 +01:00
Matthias Beyer db9c4e48ba ui/TablePrinter: Add debug output 2015-12-04 21:56:33 +01:00
Matthias Beyer 3484858c3d Remove unused code 2015-12-04 21:56:33 +01:00
Matthias Beyer 2ab025a4eb Add test: match_header_spec() testing 2015-12-04 17:52:30 +01:00
Matthias Beyer e025cf8835 Add missing Clone for FileHeaderSpec 2015-12-04 17:52:30 +01:00
Matthias Beyer 04443b34bf Add test: serialize-deserialize-compare 2015-12-04 17:52:30 +01:00
Matthias Beyer 3e75117d69 Add test: Deserialization without Specification should match as well 2015-12-04 17:52:30 +01:00
Matthias Beyer 74a9523f45 Use box_patterns, so we can unbox in the tests 2015-12-04 17:52:30 +01:00
Matthias Beyer 2dce3151bd Remove default impl for Error for ParserError 2015-12-04 17:52:30 +01:00
Matthias Beyer 84e7100229 Add test for deserialization 2015-12-04 17:52:30 +01:00
Matthias Beyer d9019e408e Remove static livetime in ParserError::short() 2015-12-04 17:51:22 +01:00
Matthias Beyer 03856cd3a1 Reimplement StorageBackendError::{new,build} with Into<String> 2015-12-04 15:18:52 +01:00
Matthias Beyer c1d497fa6a Add URL check before adding the "url" to the store 2015-12-04 15:09:03 +01:00
Matthias Beyer 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
Matthias Beyer 40ae26d0f2 BMModule::list_command() - we get back an Result<> here 2015-12-04 14:17:03 +01:00
Matthias Beyer be094dcfae StorageBackend::iter_files() return Result<> with StorageBackendError on error 2015-12-04 14:04:20 +01:00
Matthias Beyer 3df106ce8b StorageBackend::iter_ids() return Result<> with StorageBackendError on error 2015-12-04 14:02:30 +01:00
Matthias Beyer 1b0f4894ac Use FileIDType::from() and remove select_id_type_from_str() 2015-12-03 17:37:13 +01:00
Matthias Beyer ce4d99384b Impl From<&str> for FileIDType, use implementation in From<String> for FileIDType 2015-12-03 17:36:52 +01:00
Matthias Beyer f25e3683a1 Add hash type to filepath 2015-12-03 17:33:48 +01:00
Matthias Beyer 5c3d0ecce7 Impl Into<FileIDType> for FileID 2015-12-03 17:33:29 +01:00
Matthias Beyer 445f543159 Impl From<String> for FileIDType 2015-12-03 17:33:16 +01:00
Matthias Beyer 02da675b3f Impl Into<String> for FileIDType 2015-12-03 17:33:03 +01:00
Matthias Beyer dbf9ada732 Implement: FileID::from(&String), FileID::from(String) 2015-12-02 22:36:27 +01:00
Matthias Beyer 2c3dd521b8 Add test: file_id_from_string() 2015-12-02 22:35:41 +01:00
Matthias Beyer bcc9771f28 module/bm/commands: Use FileID::into() 2015-12-02 13:43:09 +01:00
Matthias Beyer 557187fbd7 storage/file: Call FileID::new() to build FileID object 2015-12-02 13:43:09 +01:00
Matthias Beyer 8ddfb090b4 ui/file: use FileID::into() 2015-12-02 13:43:09 +01:00
Matthias Beyer 292e29a5f1 Backend: Use FileID::from() 2015-12-02 13:43:09 +01:00
Matthias Beyer d3bdb39468 Reimplement FileID as abstract type, use Into, From traits for conversion 2015-12-02 13:43:09 +01:00
Matthias Beyer e93aa4ceae Refactor uses of file-id-parsing functions to ensure we honnor the Result type 2015-12-02 13:06:08 +01:00
Matthias Beyer 3e94e1612f Add FileIDResult<FileID, FileIDError> 2015-12-02 13:05:48 +01:00
Matthias Beyer 05a9803c05 Fixup: Member name 2015-12-02 12:29:04 +01:00
Matthias Beyer 9231049e30 Remove StorageBackend::build() 2015-12-02 12:28:41 +01:00
Matthias Beyer 731d13e0ba Create store path on storage backend creation 2015-12-02 12:24:05 +01:00
Matthias Beyer abee4d4904 Implement StorageBackend::remove_file() 2015-12-02 12:24:05 +01:00
Matthias Beyer 4675f79aae remove_command(): Be able to run in "checked" mode 2015-12-02 12:24:05 +01:00
Matthias Beyer c81d0bf0a8 Implement remove_command() 2015-12-02 12:24:05 +01:00
Matthias Beyer 484b1fb865 Outsource file retrieving from list_command() into helper function 2015-12-02 12:24:05 +01:00
Matthias Beyer 6fcccc8297 Implement list_command 2015-12-02 12:24:05 +01:00
Matthias Beyer 42181afde5 Add tags_of_file() to extract tags from a File 2015-12-02 12:24:05 +01:00
Matthias Beyer a6ed8e1080 Pass id as &FileID in StorageBackend::get_file_by_id() 2015-12-02 12:24:05 +01:00
Matthias Beyer 103cba0c27 Add File::matches_with(&Regex) 2015-12-02 12:24:05 +01:00
Matthias Beyer e598a475e5 Use prettytable to implement TablePrinter 2015-12-02 12:24:05 +01:00
Matthias Beyer 965779fcaf Impl Debug for BMModule 2015-12-02 12:24:05 +01:00
Matthias Beyer e515a70ec2 Rewrite Debug for Module 2015-12-02 12:24:05 +01:00
Matthias Beyer 043e607765 Implement StorageBackendError::cause() 2015-12-02 12:24:05 +01:00
Matthias Beyer f060c89751 Add helper for building file prefix
This helper builds the file prefix for the files of a module.
2015-12-02 12:24:05 +01:00