39 Commits 2c97d6f194 ... 1b88c22dec

Author SHA1 Message Date
  Matthias Beyer 1b88c22dec Merge pull request #943 from matthiasbeyer/libimagentrycategory/init 6 years ago
  Matthias Beyer c03aa12e42 Add tests 6 years ago
  Matthias Beyer c3088faa4c Add "checked" variant of set_category() 6 years ago
  Matthias Beyer af4612deef Add mod: register 6 years ago
  Matthias Beyer dad286b72e Add codebase 7 years ago
  Matthias Beyer 031e3c7bd3 Initial import 7 years ago
  Matthias Beyer b47972bedd Merge pull request #976 from matthiasbeyer/imag-store-dump 6 years ago
  Matthias Beyer 22a4dc0929 Merge pull request #955 from matthiasbeyer/libimagrt/cleanup 6 years ago
  Matthias Beyer c9d03fc3c2 Merge pull request #980 from matthiasbeyer/update-travis 6 years ago
  Matthias Beyer 895065f05f Remove unused macro import 6 years ago
  Matthias Beyer 992bba86d9 Remove unused macro import 6 years ago
  Matthias Beyer 87cab6dbb9 Remove unused dependency: lazy_static 6 years ago
  Matthias Beyer 2355de6d2e Remove unused dependency 6 years ago
  Matthias Beyer e9cec1505b Remove unneeded dependency 6 years ago
  Matthias Beyer 01fb556204 Remove unneeded macro import 6 years ago
  Matthias Beyer 4ab81275ca Remove unneeded [macro_use] 6 years ago
  Matthias Beyer bc75e96b64 Build with rust stable/beta/nightly 6 years ago
  Matthias Beyer e7c53d84ca Minify map/filter_map 6 years ago
  Matthias Beyer fe7bde3882 Minify mapping with dependency: is-match = 0.1 6 years ago
  Matthias Beyer e35d78fedb Minify mapping 6 years ago
  Matthias Beyer eff4f547ba Minify mapping 6 years ago
  Matthias Beyer e5fa71d1e7 Minify mapping 6 years ago
  Matthias Beyer 1e06b90eea Try to remove annotation 6 years ago
  Matthias Beyer 0f47c4afc7 Minify match 6 years ago
  Matthias Beyer d3d6e830d7 Print error while panicing 6 years ago
  Matthias Beyer c8bbe33513 Use stdout backend, not stdio backend 6 years ago
  Matthias Beyer 403965d912 Implement dumping 6 years ago
  Matthias Beyer c6e9a0a4a4 Add dump() stub 6 years ago
  Matthias Beyer 35fd0f2b9c Add clap subcommand for dumping 6 years ago
  Matthias Beyer 2b7706424a Merge pull request #977 from matthiasbeyer/libimagrt/fixes 6 years ago
  Matthias Beyer 17bab5b0b9 Merge pull request #978 from matthiasbeyer/libimagstore/fixes 6 years ago
  Matthias Beyer 14f261a84e Add some debug output to JSON mapper 6 years ago
  Matthias Beyer 699f4083e9 Add Runtime::store_backend_to_stdout(), make _stdio() variant use stdin properly 6 years ago
  Matthias Beyer e7e3a75924 Add another JSON test for an empty JSON 6 years ago
  Matthias Beyer 2790042f6f Propagate parsing errors 6 years ago
  Matthias Beyer 801622ecf2 Add output where paths is set 6 years ago
  Matthias Beyer de3b244a62 Bugfix: Use StoreId::from_full_path() 6 years ago
  Matthias Beyer cac3e6114e Add debug output to Walk::next() impl 6 years ago
  Matthias Beyer 54484a6ee7 Add debug output to StoreId::new_baseless() 6 years ago

+ 7 - 0
.travis.yml

@@ -7,9 +7,16 @@ dist:
 
 language: rust
 
+rust:
+  - stable
+  - beta
+  - nightly
+
 matrix:
   include:
     - rust: 1.15.0
+  allow_failures:
+    - rust: nightly
 
 cache:
   cargo: true

+ 1 - 0
Cargo.toml

@@ -17,6 +17,7 @@ members = [
     "libimagbookmark",
     "libimagcounter",
     "libimagdiary",
+    "libimagentrycategory",
     "libimagentrydatetime",
     "libimagentryedit",
     "libimagentryfilter",

+ 2 - 2
imag-diary/src/main.rs

@@ -40,12 +40,12 @@ extern crate chrono;
 extern crate libimagdiary;
 extern crate libimagentryedit;
 extern crate libimagentrylist;
+extern crate libimagerror;
 extern crate libimaginteraction;
 extern crate libimagrt;
 extern crate libimagstore;
-extern crate libimagutil;
 extern crate libimagtimeui;
-#[macro_use] extern crate libimagerror;
+extern crate libimagutil;
 
 use std::process::exit;
 

+ 51 - 0
imag-store/src/dump.rs

@@ -0,0 +1,51 @@
+//
+// imag - the personal information management suite for the commandline
+// Copyright (C) 2015, 2016 Matthias Beyer <mail@beyermatthias.de> and contributors
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; version
+// 2.1 of the License.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+//
+
+use std::process::exit;
+
+use libimagrt::runtime::Runtime;
+use libimagerror::trace::*;
+
+pub fn dump(rt: &mut Runtime) {
+    let cachingres = rt
+        .store()
+        .entries()
+        .map_err_trace()
+        .map(|iter| {
+            for elem in iter {
+                debug!("Working on {:?}", elem);
+                if let Ok(_) = rt.store().get(elem.clone()).map_err_dbg_trace() {
+                    info!("Loading entry at {:?} succeeded", elem);
+                } else {
+                    error!("Loading entry at {:?} failed", elem);
+                }
+            }
+        });
+
+    if let Ok(_) = cachingres {
+        if let Err(_) = rt.store_backend_to_stdout().map_err_trace() {
+            error!("Loading Store IO backend failed");
+            exit(1);
+        }
+    } else {
+        error!("Loading entries failed");
+        exit(1);
+    }
+}
+

+ 26 - 25
imag-store/src/main.rs

@@ -47,6 +47,7 @@ use libimagrt::setup::generate_runtime_setup;
 
 mod create;
 mod delete;
+mod dump;
 mod error;
 mod get;
 mod retrieve;
@@ -55,8 +56,11 @@ mod update;
 mod verify;
 mod util;
 
+use std::ops::Deref;
+
 use create::create;
 use delete::delete;
+use dump::dump;
 use get::get;
 use retrieve::retrieve;
 use ui::build_ui;
@@ -64,33 +68,30 @@ use update::update;
 use verify::verify;
 
 fn main() {
-    let rt = generate_runtime_setup("imag-store",
-                                    &version!()[..],
-                                    "Direct interface to the store. Use with great care!",
-                                    build_ui);
+    let mut rt = generate_runtime_setup("imag-store",
+                                        &version!()[..],
+                                        "Direct interface to the store. Use with great care!",
+                                        build_ui);
+
+    let command = rt.cli().subcommand_name().map(String::from);
 
-    rt.cli()
-        .subcommand_name()
-        .map_or_else(
-            || {
-                debug!("No command");
+    if let Some(command) = command {
+        debug!("Call: {}", command);
+        match command.deref() {
+            "create"   => create(&rt),
+            "delete"   => delete(&rt),
+            "get"      => get(&rt),
+            "retrieve" => retrieve(&rt),
+            "update"   => update(&rt),
+            "verify"   => verify(&rt),
+            "dump"     => dump(&mut rt),
+            _ => {
+                debug!("Unknown command");
                 // More error handling
             },
-            |name| {
-                debug!("Call: {}", name);
-                match name {
-                    "create"   => create(&rt),
-                    "delete"   => delete(&rt),
-                    "get"      => get(&rt),
-                    "retrieve" => retrieve(&rt),
-                    "update"   => update(&rt),
-                    "verify"   => verify(&rt),
-                    _ => {
-                        debug!("Unknown command");
-                        // More error handling
-                    },
-                };
-            }
-        )
+        };
+    } else {
+        debug!("No command");
+    }
 }
 

+ 5 - 0
imag-store/src/ui.rs

@@ -205,4 +205,9 @@ pub fn build_ui<'a>(app: App<'a, 'a>) -> App<'a, 'a> {
                    .about("Verify the store")
                    .version("0.1")
                    )
+
+       .subcommand(SubCommand::with_name("dump")
+                   .about("Dump the complete store to stdout. Currently does only support JSON")
+                   .version("0.1")
+                   )
 }

+ 0 - 2
libimagbookmark/Cargo.toml

@@ -14,11 +14,9 @@ repository    = "https://github.com/matthiasbeyer/imag"
 homepage      = "http://imag-pim.org"
 
 [dependencies]
-log = "0.3"
 semver = "0.5"
 url = "1.2"
 regex = "0.1"
-is-match = "0.1"
 
 [dependencies.libimagstore]
 path = "../libimagstore"

+ 0 - 2
libimagbookmark/src/lib.rs

@@ -31,8 +31,6 @@
     while_true,
 )]
 
-#[macro_use] extern crate log;
-#[macro_use] extern crate is_match;
 extern crate semver;
 extern crate url;
 extern crate regex;

+ 1 - 1
libimagcounter/src/lib.rs

@@ -34,7 +34,7 @@
 extern crate toml;
 extern crate toml_query;
 #[macro_use] extern crate log;
-#[macro_use] extern crate semver;
+extern crate semver;
 
 #[macro_use] extern crate libimagstore;
 #[macro_use] extern crate libimagerror;

+ 0 - 0
libimagdiary/Cargo.toml


Some files were not shown because too many files changed in this diff