summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bin/core/imag-annotate/Cargo.toml14
-rw-r--r--bin/core/imag-diagnostics/Cargo.toml10
-rw-r--r--bin/core/imag-gps/Cargo.toml14
-rw-r--r--bin/core/imag-grep/Cargo.toml8
-rw-r--r--bin/core/imag-link/Cargo.toml16
-rw-r--r--bin/core/imag-link/src/main.rs2
-rw-r--r--bin/core/imag-mv/Cargo.toml8
-rw-r--r--bin/core/imag-ref/Cargo.toml14
-rw-r--r--bin/core/imag-store/Cargo.toml14
-rw-r--r--bin/core/imag-store/src/create.rs4
-rw-r--r--bin/core/imag-store/src/delete.rs2
-rw-r--r--bin/core/imag-tag/Cargo.toml16
-rw-r--r--bin/core/imag-tag/src/main.rs2
-rw-r--r--bin/core/imag-view/Cargo.toml10
-rw-r--r--bin/core/imag/Cargo.toml6
-rw-r--r--bin/domain/imag-bookmark/Cargo.toml10
-rw-r--r--bin/domain/imag-contact/Cargo.toml18
-rw-r--r--bin/domain/imag-contact/static/new-contact-template-test.toml2
-rw-r--r--bin/domain/imag-contact/static/new-contact-template.toml2
-rw-r--r--bin/domain/imag-diary/Cargo.toml20
-rw-r--r--bin/domain/imag-habit/Cargo.toml20
-rw-r--r--bin/domain/imag-mail/Cargo.toml10
-rw-r--r--bin/domain/imag-notes/Cargo.toml12
-rw-r--r--bin/domain/imag-timetrack/Cargo.toml10
-rw-r--r--bin/domain/imag-todo/Cargo.toml8
-rw-r--r--doc/src/00000.md4
-rw-r--r--doc/src/02000-store.md6
-rw-r--r--doc/src/09000-todos.md16
-rw-r--r--doc/src/09020-changelog.md9
-rw-r--r--lib/core/libimagerror/Cargo.toml2
-rw-r--r--lib/core/libimagrt/Cargo.toml10
-rw-r--r--lib/core/libimagrt/src/runtime.rs15
-rw-r--r--lib/core/libimagstore/Cargo.toml7
-rw-r--r--lib/core/libimagstore/src/configuration.rs61
-rw-r--r--lib/core/libimagstore/src/error.rs9
-rw-r--r--lib/core/libimagstore/src/file_abstraction/mod.rs2
-rw-r--r--lib/core/libimagstore/src/file_abstraction/stdio/mapper/json.rs12
-rw-r--r--lib/core/libimagstore/src/lib.rs1
-rw-r--r--lib/core/libimagstore/src/store.rs140
-rw-r--r--lib/domain/libimagbookmark/Cargo.toml8
-rw-r--r--lib/domain/libimagcontact/Cargo.toml8
-rw-r--r--lib/domain/libimagdiary/Cargo.toml12
-rw-r--r--lib/domain/libimaghabit/Cargo.toml10
-rw-r--r--lib/domain/libimagmail/Cargo.toml8
-rw-r--r--lib/domain/libimagnotes/Cargo.toml10
-rw-r--r--lib/domain/libimagtimetrack/Cargo.toml10
-rw-r--r--lib/domain/libimagtimetrack/src/iter/mod.rs2
-rw-r--r--lib/domain/libimagtodo/Cargo.toml6
-rw-r--r--lib/entry/libimagentryannotation/Cargo.toml8
-rw-r--r--lib/entry/libimagentrycategory/Cargo.toml6
-rw-r--r--lib/entry/libimagentrycategory/src/register.rs2
-rw-r--r--lib/entry/libimagentrydatetime/Cargo.toml6
-rw-r--r--lib/entry/libimagentrydatetime/src/datetime.rs2
-rw-r--r--lib/entry/libimagentryedit/Cargo.toml10
-rw-r--r--lib/entry/libimagentryfilter/Cargo.toml6
-rw-r--r--lib/entry/libimagentrygps/Cargo.toml6
-rw-r--r--lib/entry/libimagentrygps/src/entry.rs2
-rw-r--r--lib/entry/libimagentrylink/Cargo.toml8
-rw-r--r--lib/entry/libimagentrylink/src/external.rs2
-rw-r--r--lib/entry/libimagentrylink/src/internal.rs2
-rw-r--r--lib/entry/libimagentrylist/Cargo.toml8
-rw-r--r--lib/entry/libimagentrymarkdown/Cargo.toml12
-rw-r--r--lib/entry/libimagentrymarkdown/src/processor.rs2
-rw-r--r--lib/entry/libimagentryref/Cargo.toml8
-rw-r--r--lib/entry/libimagentrytag/Cargo.toml6
-rw-r--r--lib/entry/libimagentryview/Cargo.toml10
-rw-r--r--lib/etc/libimaginteraction/Cargo.toml6
-rw-r--r--lib/etc/libimagnotification/Cargo.toml6
-rw-r--r--lib/etc/libimagtimeui/Cargo.toml2
-rw-r--r--lib/etc/libimagutil/Cargo.toml2
-rw-r--r--scripts/release.sh58
71 files changed, 390 insertions, 410 deletions
diff --git a/bin/core/imag-annotate/Cargo.toml b/bin/core/imag-annotate/Cargo.toml
index aabeffa..ff03e34 100644
--- a/bin/core/imag-annotate/Cargo.toml
+++ b/bin/core/imag-annotate/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-annotate"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-annotate command"
@@ -27,10 +27,10 @@ url = "1.2"
toml = "0.4"
toml-query = "0.4"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentryannotation = { version = "0.5.0", path = "../../../lib/entry/libimagentryannotation" }
-libimagentryedit = { version = "0.5.0", path = "../../../lib/entry/libimagentryedit" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentryannotation = { version = "0.6.0", path = "../../../lib/entry/libimagentryannotation" }
+libimagentryedit = { version = "0.6.0", path = "../../../lib/entry/libimagentryedit" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
diff --git a/bin/core/imag-diagnostics/Cargo.toml b/bin/core/imag-diagnostics/Cargo.toml
index 68eafc8..f627499 100644
--- a/bin/core/imag-diagnostics/Cargo.toml
+++ b/bin/core/imag-diagnostics/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-diagnostics"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-gps command"
@@ -19,8 +19,8 @@ version = "2.0.1"
toml = "0.4"
toml-query = "0.4"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentrylink = { version = "0.5.0", path = "../../../lib/entry/libimagentrylink" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentrylink = { version = "0.6.0", path = "../../../lib/entry/libimagentrylink" }
diff --git a/bin/core/imag-gps/Cargo.toml b/bin/core/imag-gps/Cargo.toml
index 1314f77..7411a1f 100644
--- a/bin/core/imag-gps/Cargo.toml
+++ b/bin/core/imag-gps/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-gps"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-gps command"
@@ -27,14 +27,14 @@ url = "1.2"
toml = "0.4"
toml-query = "^0.4"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentrygps = { version = "0.5.0", path = "../../../lib/entry/libimagentrygps" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentrygps = { version = "0.6.0", path = "../../../lib/entry/libimagentrygps" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
[dev-dependencies.libimagutil]
-version = "0.5.0"
+version = "0.6.0"
path = "../../../lib/etc/libimagutil"
default-features = false
features = ["testing"]
diff --git a/bin/core/imag-grep/Cargo.toml b/bin/core/imag-grep/Cargo.toml
index 4525cb7..4107298 100644
--- a/bin/core/imag-grep/Cargo.toml
+++ b/bin/core/imag-grep/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-grep"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-grep command"
@@ -24,7 +24,7 @@ clap = ">=2.17"
version = "2.0.1"
regex = "0.2"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
diff --git a/bin/core/imag-link/Cargo.toml b/bin/core/imag-link/Cargo.toml
index 68344aa..c8b1e48 100644
--- a/bin/core/imag-link/Cargo.toml
+++ b/bin/core/imag-link/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-link"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-link command"
@@ -27,20 +27,20 @@ url = "1.5"
toml = "0.4"
toml-query = "^0.4"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentrylink = { version = "0.5.0", path = "../../../lib/entry/libimagentrylink" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentrylink = { version = "0.6.0", path = "../../../lib/entry/libimagentrylink" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
[dev-dependencies.libimagutil]
-version = "0.5.0"
+version = "0.6.0"
path = "../../../lib/etc/libimagutil"
default-features = false
features = ["testing"]
[dev-dependencies.libimagrt]
-version = "0.5.0"
+version = "0.6.0"
path = "../../../lib/core/libimagrt"
default-features = false
features = ["testing"]
diff --git a/bin/core/imag-link/src/main.rs b/bin/core/imag-link/src/main.rs
index 2c9ce53..9a68632 100644
--- a/bin/core/imag-link/src/main.rs
+++ b/bin/core/imag-link/src/main.rs
@@ -268,7 +268,7 @@ mod tests {
make_mock_app! {
app "imag-link";
modulename mock;
- version "0.5.0";
+ version "0.6.0";
with help "imag-link mocking app";
}
use self::mock::generate_test_runtime;
diff --git a/bin/core/imag-mv/Cargo.toml b/bin/core/imag-mv/Cargo.toml
index 4eb2c98..c8ac05c 100644
--- a/bin/core/imag-mv/Cargo.toml
+++ b/bin/core/imag-mv/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-mv"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag command"
@@ -24,7 +24,7 @@ version = "2.0"
clap = ">=2.17"
log = "0.3"
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
diff --git a/bin/core/imag-ref/Cargo.toml b/bin/core/imag-ref/Cargo.toml
index 3faf611..53f566f 100644
--- a/bin/core/imag-ref/Cargo.toml
+++ b/bin/core/imag-ref/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-ref"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-ref command"
@@ -24,9 +24,9 @@ clap = ">=2.17"
log = "0.3"
version = "2.0.1"
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentryref = { version = "0.5.0", path = "../../../lib/entry/libimagentryref" }
-libimagentrylist = { version = "0.5.0", path = "../../../lib/entry/libimagentrylist" }
-libimaginteraction = { version = "0.5.0", path = "../../../lib/etc/libimaginteraction" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentryref = { version = "0.6.0", path = "../../../lib/entry/libimagentryref" }
+libimagentrylist = { version = "0.6.0", path = "../../../lib/entry/libimagentrylist" }
+libimaginteraction = { version = "0.6.0", path = "../../../lib/etc/libimaginteraction" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
diff --git a/bin/core/imag-store/Cargo.toml b/bin/core/imag-store/Cargo.toml
index ad3c207..786f46f 100644
--- a/bin/core/imag-store/Cargo.toml
+++ b/bin/core/imag-store/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-store"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-store command"
@@ -26,22 +26,22 @@ version = "2.0.1"
toml = "0.4"
error-chain = "0.11"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore", features = ["verify"] }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore", features = ["verify"] }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
[features]
early-panic = [ "libimagstore/early-panic" ]
[dev-dependencies.libimagutil]
-version = "0.5.0"
+version = "0.6.0"
path = "../../../lib/etc/libimagutil"
default-features = false
features = ["testing"]
[dev-dependencies.libimagrt]
-version = "0.5.0"
+version = "0.6.0"
path = "../../../lib/core/libimagrt"
default-features = false
features = ["testing"]
diff --git a/bin/core/imag-store/src/create.rs b/bin/core/imag-store/src/create.rs
index 39f53a0..83c4014 100644
--- a/bin/core/imag-store/src/create.rs
+++ b/bin/core/imag-store/src/create.rs
@@ -177,7 +177,7 @@ mod tests {
make_mock_app! {
app "imag-store";
modulename mock;
- version "0.5.0";
+ version "0.6.0";
with help "imag-store mocking app";
}
use self::mock::generate_test_runtime;
@@ -196,7 +196,7 @@ mod tests {
let e = e.unwrap();
let version = e.get_header().read("imag.version").map(Option::unwrap).unwrap();
- assert_eq!(Value::String(String::from("0.5.0")), *version);
+ assert_eq!(Value::String(String::from("0.6.0")), *version);
}
}
diff --git a/bin/core/imag-store/src/delete.rs b/bin/core/imag-store/src/delete.rs
index 8fb89a3..f50cc9c 100644
--- a/bin/core/imag-store/src/delete.rs
+++ b/bin/core/imag-store/src/delete.rs
@@ -49,7 +49,7 @@ mod tests {
make_mock_app! {
app "imag-store";
modulename mock;
- version "0.5.0";
+ version "0.6.0";
with help "imag-store mocking app";
}
use self::mock::generate_test_runtime;
diff --git a/bin/core/imag-tag/Cargo.toml b/bin/core/imag-tag/Cargo.toml
index 0d8b790..7e6bbec 100644
--- a/bin/core/imag-tag/Cargo.toml
+++ b/bin/core/imag-tag/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-tag"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-tag command"
@@ -25,24 +25,24 @@ log = "0.3"
version = "2.0.1"
toml = "0.4"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentrytag = { version = "0.5.0", path = "../../../lib/entry/libimagentrytag" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentrytag = { version = "0.6.0", path = "../../../lib/entry/libimagentrytag" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
[dev-dependencies]
toml-query = "^0.4"
env_logger = "0.4"
[dev-dependencies.libimagutil]
-version = "0.5.0"
+version = "0.6.0"
path = "../../../lib/etc/libimagutil"
default-features = false
features = ["testing"]
[dev-dependencies.libimagrt]
-version = "0.5.0"
+version = "0.6.0"
path = "../../../lib/core/libimagrt"
default-features = false
features = ["testing"]
diff --git a/bin/core/imag-tag/src/main.rs b/bin/core/imag-tag/src/main.rs
index 2204181..699cc5f 100644
--- a/bin/core/imag-tag/src/main.rs
+++ b/bin/core/imag-tag/src/main.rs
@@ -247,7 +247,7 @@ mod tests {
make_mock_app! {
app "imag-tag";
modulename mock;
- version "0.5.0";
+ version "0.6.0";
with help "imag-tag mocking app";
}
use self::mock::generate_test_runtime;
diff --git a/bin/core/imag-view/Cargo.toml b/bin/core/imag-view/Cargo.toml
index 488f2f6..e552cab 100644
--- a/bin/core/imag-view/Cargo.toml
+++ b/bin/core/imag-view/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-view"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-view command"
@@ -28,8 +28,8 @@ version = "2.0.1"
handlebars = "0.29.0"
tempfile = "2.1"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentryview = { version = "0.5.0", path = "../../../lib/entry/libimagentryview" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentryview = { version = "0.6.0", path = "../../../lib/entry/libimagentryview" }
diff --git a/bin/core/imag/Cargo.toml b/bin/core/imag/Cargo.toml
index 140cd12..276774e 100644
--- a/bin/core/imag/Cargo.toml
+++ b/bin/core/imag/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag command"
@@ -27,7 +27,7 @@ log = "0.3"
toml = "0.4"
toml-query = "^0.4"
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
diff --git a/bin/domain/imag-bookmark/Cargo.toml b/bin/domain/imag-bookmark/Cargo.toml
index 13b6f73..e4dd858 100644
--- a/bin/domain/imag-bookmark/Cargo.toml
+++ b/bin/domain/imag-bookmark/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-bookmark"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-bookmark command"
@@ -26,7 +26,7 @@ version = "2.0.1"
toml = "0.4"
toml-query = "^0.4"
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagbookmark = { version = "0.5.0", path = "../../../lib/domain/libimagbookmark" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagbookmark = { version = "0.6.0", path = "../../../lib/domain/libimagbookmark" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
diff --git a/bin/domain/imag-contact/Cargo.toml b/bin/domain/imag-contact/Cargo.toml
index dbc4a64..de6b443 100644
--- a/bin/domain/imag-contact/Cargo.toml
+++ b/bin/domain/imag-contact/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-contact"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-contact command"
@@ -24,12 +24,12 @@ vobject = "0.4"
walkdir = "1"
uuid = { version = "0.5", features = ["v4"] }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagcontact = { version = "0.5.0", path = "../../../lib/domain/libimagcontact" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
-libimagentryref = { version = "0.5.0", path = "../../../lib/entry/libimagentryref" }
-libimagentryedit = { version = "0.5.0", path = "../../../lib/entry/libimagentryedit" }
-libimaginteraction = { version = "0.5.0", path = "../../../lib/etc/libimaginteraction" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagcontact = { version = "0.6.0", path = "../../../lib/domain/libimagcontact" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
+libimagentryref = { version = "0.6.0", path = "../../../lib/entry/libimagentryref" }
+libimagentryedit = { version = "0.6.0", path = "../../../lib/entry/libimagentryedit" }
+libimaginteraction = { version = "0.6.0", path = "../../../lib/etc/libimaginteraction" }
diff --git a/bin/domain/imag-contact/static/new-contact-template-test.toml b/bin/domain/imag-contact/static/new-contact-template-test.toml
index a7791e0..394c989 100644
--- a/bin/domain/imag-contact/static/new-contact-template-test.toml
+++ b/bin/domain/imag-contact/static/new-contact-template-test.toml
@@ -1,4 +1,4 @@
-# Contact template for imag-contact version 0.5.0
+# Contact template for imag-contact version 0.6.0
#
# This file is explicitely _not_ distributed under the terms of the original imag license, but
# public domain.
diff --git a/bin/domain/imag-contact/static/new-contact-template.toml b/bin/domain/imag-contact/static/new-contact-template.toml
index 04f13af..44fdb9c 100644
--- a/bin/domain/imag-contact/static/new-contact-template.toml
+++ b/bin/domain/imag-contact/static/new-contact-template.toml
@@ -1,4 +1,4 @@
-# Contact template for imag-contact version 0.5.0
+# Contact template for imag-contact version 0.6.0
#
# This file is explicitely _not_ distributed under the terms of the original imag license, but
# public domain.
diff --git a/bin/domain/imag-diary/Cargo.toml b/bin/domain/imag-diary/Cargo.toml
index a1ad5a4..7570a07 100644
--- a/bin/domain/imag-diary/Cargo.toml
+++ b/bin/domain/imag-diary/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-diary"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-diary command"
@@ -27,13 +27,13 @@ log = "0.3"
toml = "0.4"
toml-query = "^0.4"
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagdiary = { version = "0.5.0", path = "../../../lib/domain/libimagdiary" }
-libimagentryedit = { version = "0.5.0", path = "../../../lib/entry/libimagentryedit" }
-libimagentrylist = { version = "0.5.0", path = "../../../lib/entry/libimagentrylist" }
-libimaginteraction = { version = "0.5.0", path = "../../../lib/etc/libimaginteraction" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
-libimagtimeui = { version = "0.5.0", path = "../../../lib/etc/libimagtimeui" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagdiary = { version = "0.6.0", path = "../../../lib/domain/libimagdiary" }
+libimagentryedit = { version = "0.6.0", path = "../../../lib/entry/libimagentryedit" }
+libimagentrylist = { version = "0.6.0", path = "../../../lib/entry/libimagentrylist" }
+libimaginteraction = { version = "0.6.0", path = "../../../lib/etc/libimaginteraction" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
+libimagtimeui = { version = "0.6.0", path = "../../../lib/etc/libimagtimeui" }
diff --git a/bin/domain/imag-habit/Cargo.toml b/bin/domain/imag-habit/Cargo.toml
index 1fd2811..6c575d1 100644
--- a/bin/domain/imag-habit/Cargo.toml
+++ b/bin/domain/imag-habit/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-habit"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-habit command"
@@ -22,13 +22,13 @@ toml = "0.4"
toml-query = "^0.4"
kairos = "0.1.0-beta-2"
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagentryedit = { version = "0.5.0", path = "../../../lib/entry/libimagentryedit" }
-libimagentrylist = { version = "0.5.0", path = "../../../lib/entry/libimagentrylist" }
-libimaginteraction = { version = "0.5.0", path = "../../../lib/etc/libimaginteraction" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
-libimagtimeui = { version = "0.5.0", path = "../../../lib/etc/libimagtimeui" }
-libimaghabit = { version = "0.5.0", path = "../../../lib/domain/libimaghabit" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagentryedit = { version = "0.6.0", path = "../../../lib/entry/libimagentryedit" }
+libimagentrylist = { version = "0.6.0", path = "../../../lib/entry/libimagentrylist" }
+libimaginteraction = { version = "0.6.0", path = "../../../lib/etc/libimaginteraction" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
+libimagtimeui = { version = "0.6.0", path = "../../../lib/etc/libimagtimeui" }
+libimaghabit = { version = "0.6.0", path = "../../../lib/domain/libimaghabit" }
diff --git a/bin/domain/imag-mail/Cargo.toml b/bin/domain/imag-mail/Cargo.toml
index bc05582..0de2c00 100644
--- a/bin/domain/imag-mail/Cargo.toml
+++ b/bin/domain/imag-mail/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-mail"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-notes command"
@@ -20,7 +20,7 @@ clap = ">=2.17"
log = "0.3"
version = "2.0.1"
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagmail = { version = "0.5.0", path = "../../../lib/domain/libimagmail" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagmail = { version = "0.6.0", path = "../../../lib/domain/libimagmail" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
diff --git a/bin/domain/imag-notes/Cargo.toml b/bin/domain/imag-notes/Cargo.toml
index 0e97826..879bc6d 100644
--- a/bin/domain/imag-notes/Cargo.toml
+++ b/bin/domain/imag-notes/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-notes"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-notes command"
@@ -25,8 +25,8 @@ log = "0.3"
version = "2.0.1"
itertools = "0.7"
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagnotes = { version = "0.5.0", path = "../../../lib/domain/libimagnotes" }
-libimagentryedit = { version = "0.5.0", path = "../../../lib/entry/libimagentryedit" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagnotes = { version = "0.6.0", path = "../../../lib/domain/libimagnotes" }
+libimagentryedit = { version = "0.6.0", path = "../../../lib/entry/libimagentryedit" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
diff --git a/bin/domain/imag-timetrack/Cargo.toml b/bin/domain/imag-timetrack/Cargo.toml
index 52938e1..a221b56 100644
--- a/bin/domain/imag-timetrack/Cargo.toml
+++ b/bin/domain/imag-timetrack/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "imag-timetrack"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Part of the imag core distribution: imag-tag command"
@@ -27,7 +27,7 @@ chrono = "0.4"
filters = "0.2"
itertools = "0.7"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagtimetrack = { version = "0.5.0", path = "../../../lib/domain/libimagtimetrack" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagtimetrack = { version = "0.6.0", path = "../../../lib/domain/libimagtimetrack" }
diff --git a/bin/domain/imag-todo/Cargo.toml b/bin/domain/imag-todo/Cargo.toml
index 994857c..1a0649e 100644
--- a/bin/domain/imag-todo/Cargo.toml
+++ b/bin/domain/imag-todo/Cargo.toml
@@ -1,7 +1,7 @@
[package]
authors = ["mario <mario-krehl@gmx.de>"]
name = "imag-todo"
-version = "0.5.0"
+version = "0.6.0"
description = "Part of the imag core distribution: imag-todo command"
@@ -27,6 +27,6 @@ toml-query = "^0.4"
is-match = "0.1"
version = "2.0.1"
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagtodo = { version = "0.5.0", path = "../../../lib/domain/libimagtodo" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagtodo = { version = "0.6.0", path = "../../../lib/domain/libimagtodo" }
diff --git a/doc/src/00000.md b/doc/src/00000.md
index ff06d85..9c46621 100644
--- a/doc/src/00000.md
+++ b/doc/src/00000.md
@@ -1,7 +1,7 @@
---
title: imag User Documentation
-version: 0.5.0
-date: September 2017
+version: 0.6.0
+date: December 2017
listings: true
codeBlockCaptions: true
figureTitle: "Figure"
diff --git a/doc/src/02000-store.md b/doc/src/02000-store.md
index 21243e5..1a1ecfb 100644
--- a/doc/src/02000-store.md
+++ b/doc/src/02000-store.md
@@ -77,7 +77,7 @@ An example for a file in the store follows.
---
[imag]
-version = "0.5.0"
+version = "0.6.0"
[note]
name = "foo"
@@ -228,12 +228,12 @@ The strucure is as follows:
```json
{
- "version": "0.5.0",
+ "version": "0.6.0",
"store": {
"example": {
"header": {
"imag": {
- "version": "0.5.0",
+ "version": "0.6.0",
},
},
"content": "hi there!",
diff --git a/doc/src/09000-todos.md b/doc/src/09000-todos.md
index 20b7300..67b22cd 100644
--- a/doc/src/09000-todos.md
+++ b/doc/src/09000-todos.md
@@ -73,22 +73,6 @@ Now the modules that are not yet started:
- [ ] imag-write - Command to read the store from stdin and write it to the
filesystem store (usefull for piping/chaining commands)
-## Libraries
-
-- [x] Rewrite libimagerror to be based on `chain-error` crate. This basically
- removes our error infrastructure, though existing traits and convenience
- functionality should be kept (for example the `MapErrInto` or the `IntoError`
- traits), as much as possible). If the switch to `chain-error` would require
- too much code to be rewritten, reconsider.
-- [x] Ensure all libraries are implemented as extension traits rather than
- wrapping store types
-- [x] Rewrite logger to allow config/env-var based module white/blacklisting and
- writing log to file
-
-## User Interface
-
-- [ ] Ensure store ids are always passed as positional arguments
-
## Project structure and development
- [ ] Move away from github
diff --git a/doc/src/09020-changelog.md b/doc/src/09020-changelog.md
index 8a3ec5d..984444f 100644
--- a/doc/src/09020-changelog.md
+++ b/doc/src/09020-changelog.md
@@ -18,6 +18,8 @@ Version 0.y.z and thus we can break the API like we want and need to.
This section contains the changelog from the last release to the next release.
+## 0.5.0
+
* Major changes
* `imag-counter` and `libimagcounter` was removed.
* `imag-mv` was introduced
@@ -51,6 +53,13 @@ This section contains the changelog from the last release to the next release.
* `Store::entries()` does not yield StoreIds which point to directories
anymore, only StoreIds pointing to files.
+* Stats
+ * 227 commits
+ * 51 merge-commits / 176 non-merge commits
+ * 2 contributors
+ * 186 files changed
+ * 6707 insertions(+) / 3255 deletions(-)
+
## 0.4.0
* Major changes
diff --git a/lib/core/libimagerror/Cargo.toml b/lib/core/libimagerror/Cargo.toml
index 56300ea..9cef709 100644
--- a/lib/core/libimagerror/Cargo.toml
+++ b/lib/core/libimagerror/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagerror"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
diff --git a/lib/core/libimagrt/Cargo.toml b/lib/core/libimagrt/Cargo.toml
index 88c27d2..8c59ecb 100644
--- a/lib/core/libimagrt/Cargo.toml
+++ b/lib/core/libimagrt/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagrt"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -32,10 +32,10 @@ toml-query = "^0.4"
error-chain = "0.11"
handlebars = "0.29.0"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
-libimaginteraction = { version = "0.5.0", path = "../../../lib/etc/libimaginteraction" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
+libimaginteraction = { version = "0.6.0", path = "../../../lib/etc/libimaginteraction" }
[features]
default = []
diff --git a/lib/core/libimagrt/src/runtime.rs b/lib/core/libimagrt/src/runtime.rs
index 42f5d5b..9f46feb 100644
--- a/lib/core/libimagrt/src/runtime.rs
+++ b/lib/core/libimagrt/src/runtime.rs
@@ -24,7 +24,6 @@ use std::process::exit;
pub use clap::App;
use toml::Value;
-use toml_query::read::TomlValueReadExt;
use clap::{Arg, ArgMatches};
use log;
@@ -138,22 +137,12 @@ impl<'a> Runtime<'a> {
debug!("RTP path = {:?}", rtp);
debug!("Store path = {:?}", storepath);
- let store_config = match config {
- Some(ref c) => c.read("store").chain_err(|| RuntimeErrorKind::Instantiate)?.cloned(),
- None => None,
- };
-
- if matches.is_present(Runtime::arg_debugging_name()) {
- debug!("Config: {:?}\n", config);
- debug!("Store-config: {:?}\n", store_config);
- }
-
let store_result = if cli_app.use_inmemory_fs() {
Store::new_with_backend(storepath,
- store_config,
+ &config,
Box::new(InMemoryFileAbstraction::new()))
} else {
- Store::new(storepath, store_config)
+ Store::new(storepath, &config)
};
store_result.map(|store| {
diff --git a/lib/core/libimagstore/Cargo.toml b/lib/core/libimagstore/Cargo.toml
index 0fce876..dd9088f 100644
--- a/lib/core/libimagstore/Cargo.toml
+++ b/lib/core/libimagstore/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagstore"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -33,9 +33,10 @@ serde = "1"
serde_json = "1"
serde_derive = "1"
error-chain = "0.11"
+toml-query = "0.4"
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
[dev-dependencies]
tempdir = "0.3"
diff --git a/lib/core/libimagstore/src/configuration.rs b/lib/core/libimagstore/src/configuration.rs
index dc60311..b1b1974 100644
--- a/lib/core/libimagstore/src/configuration.rs
+++ b/lib/core/libimagstore/src/configuration.rs
@@ -21,50 +21,25 @@ use toml::Value;
use store::Result;
use error::StoreError as SE;
+use error::StoreErrorKind as SEK;
-/// Check whether the configuration is valid for the store
-pub fn config_is_valid(config: &Option<Value>) -> Result<()> {
- use error::StoreErrorKind as SEK;
+/// Checks whether the store configuration has a key "implicit-create" which maps to a boolean
+/// value. If that key is present, the boolean is returned, otherwise false is returned.
+pub fn config_implicit_store_create_allowed(config: &Option<Value>) -> Result<bool> {
+ use toml_query::read::TomlValueReadExt;
- if config.is_none() {
- return Ok(());
- }
+ let key = "store.implicit-create";
- match *config {
- Some(Value::Table(_)) => Ok(()),
- _ => {
- warn!("Store config is no table");
- Err(SE::from_kind(SEK::ConfigTypeError))
- },
+ if let Some(ref t) = *config {
+ t.read(key)?
+ .ok_or(SE::from_kind(SEK::ConfigKeyMissingError(key)))?
+ .as_bool()
+ .ok_or(SE::from_kind(SEK::ConfigTypeError(key, "boolean")))
+ } else {
+ Ok(false)
}
}
-/// Checks whether the store configuration has a key "implicit-create" which maps to a boolean
-/// value. If that key is present, the boolean is returned, otherwise false is returned.
-pub fn config_implicit_store_create_allowed(config: Option<&Value>) -> bool {
- config.map(|t| {
- match *t {
- Value::Table(ref t) => {
- match t.get("implicit-create") {
- Some(&Value::Boolean(b)) => b,
- Some(_) => {
- warn!("Key 'implicit-create' does not contain a Boolean value");
- false
- }
- None => {
- warn!("Key 'implicit-create' in store configuration missing");
- false
- },
- }
- }
- _ => {
- warn!("Store configuration seems to be no Table");
- false
- },
- }
- }).unwrap_or(false)
-}
-
#[cfg(test)]
mod tests {
use toml::de::from_str as toml_from_str;
@@ -72,31 +47,33 @@ mod tests {
#[test]
fn test_implicit_store_create_allowed_no_toml() {
- assert!(!config_implicit_store_create_allowed(None));
+ assert!(!config_implicit_store_create_allowed(&None).unwrap());
}
#[test]
fn test_implicit_store_create_allowed_toml_empty() {
let config = toml_from_str("").unwrap();
- assert!(!config_implicit_store_create_allowed(Some(config).as_ref()));
+ assert!(config_implicit_store_create_allowed(&Some(config)).is_err());
}
#[test]
fn test_implicit_store_create_allowed_toml_false() {
let config = toml_from_str(r#"
+ [store]
implicit-create = false
"#).unwrap();
- assert!(!config_implicit_store_create_allowed(Some(config).as_ref()));
+ assert!(!config_implicit_store_create_allowed(&Some(config)).unwrap());
}
#[test]
fn test_implicit_store_create_allowed_toml_true() {
let config = toml_from_str(r#"
+ [store]
implicit-create = true
"#).unwrap();
- assert!(config_implicit_store_create_allowed(Some(config).as_ref()));
+ assert!(config_implicit_store_create_allowed(&Some(config)).unwrap());
}
}
diff --git a/lib/core/libimagstore/src/error.rs b/lib/core/libimagstore/src/error.rs
index fec24d9..2bb7172 100644
--- a/lib/core/libimagstore/src/error.rs
+++ b/lib/core/libimagstore/src/error.rs
@@ -30,6 +30,7 @@ error_chain! {
Io(::std::io::Error);
TomlDeserError(::toml::de::Error);
GlobPatternError(::glob::PatternError);
+ TomlQueryError(::toml_query::error::Error);
}
errors {
@@ -39,14 +40,14 @@ error_chain! {
display("Store Configuration Error")
}
- ConfigTypeError {
+ ConfigTypeError(key: &'static str, expected: &'static str) {
description("Store configuration type error")
- display("Store configuration type error")
+ display("Store configuration type error at '{}', expected {}", key, expected)
}
- ConfigKeyMissingError {
+ ConfigKeyMissingError(key: &'static str) {
description("Configuration Key missing")
- display("Configuration Key missing")
+ display("Configuration Key missing: '{}'", key)
}
VersionError {
diff --git a/lib/core/libimagstore/src/file_abstraction/mod.rs b/lib/core/libimagstore/src/file_abstraction/mod.rs
index 6c23f34..6ad07fe 100644
--- a/lib/core/libimagstore/src/file_abstraction/mod.rs
+++ b/lib/core/libimagstore/src/file_abstraction/mod.rs
@@ -114,7 +114,7 @@ mod test {
let loca = StoreId::new_baseless(path).unwrap();
let file = Entry::from_str(loca.clone(), r#"---
[imag]
-version = "0.5.0"
+version = "0.6.0"
---
Hello World"#).unwrap();
diff --git a/lib/core/libimagstore/src/file_abstraction/stdio/mapper/json.rs b/lib/core/libimagstore/src/file_abstraction/stdio/mapper/json.rs
index 7bc8fc9..34da0a9 100644
--- a/lib/core/libimagstore/src/file_abstraction/stdio/mapper/json.rs
+++ b/lib/core/libimagstore/src/file_abstraction/stdio/mapper/json.rs
@@ -164,7 +164,7 @@ mod test {
#[test]
fn test_empty_json_to_fs() {
- let json = r#"{"version":"0.5.0","store":{}}"#;
+ let json = r#"{"version":"0.6.0","store":{}}"#;
let mut json = Cursor::new(String::from(json).into_bytes());
let mapper = JsonMapper::new();
let mut hm = HashMap::new();
@@ -177,12 +177,12 @@ mod test {
#[test]
fn test_json_to_fs() {
let json = r#"
- { "version": "0.5.0",
+ { "version": "0.6.0",
"store": {
"example": {
"header": {
"imag": {
- "version": "0.5.0"
+ "version": "0.6.0"
}
},
"content": "test"
@@ -209,7 +209,7 @@ mod test {
let mut hm = HashMap::new();
let content = r#"---
[imag]
-version = "0.5.0"
+version = "0.6.0"
---
hi there!"#;
@@ -224,12 +224,12 @@ hi there!"#;
let example = r#"
{
- "version": "0.5.0",
+ "version": "0.6.0",
"store": {
"example": {
"header": {
"imag": {
- "version": "0.5.0"
+ "version": "0.6.0"
}
},
"content": "hi there!"
diff --git a/lib/core/libimagstore/src/lib.rs b/lib/core/libimagstore/src/lib.rs
index 3b665a5..4ce4ccf 100644
--- a/lib/core/libimagstore/src/lib.rs
+++ b/lib/core/libimagstore/src/lib.rs
@@ -48,6 +48,7 @@ extern crate walkdir;
extern crate serde_json;
#[macro_use] extern crate serde_derive;
#[macro_use] extern crate error_chain;
+extern crate toml_query;
extern crate libimagerror;
extern crate libimagutil;
diff --git a/lib/core/libimagstore/src/store.rs b/lib/core/libimagstore/src/store.rs
index 860d968..8064fdf 100644
--- a/lib/core/libimagstore/src/store.rs
+++ b/lib/core/libimagstore/src/store.rs
@@ -32,10 +32,10 @@ use std::fmt::Debug;
use std::fmt::Error as FMTError;
use toml::Value;
-use toml::value::Table;
use glob::glob;
use walkdir::WalkDir;
use walkdir::Iter as WalkDirIter;
+use toml_query::read::TomlValueReadExt;
use error::{StoreError as SE, StoreErrorKind as SEK};
use error::ResultExt;
@@ -205,11 +205,6 @@ pub struct Store {
location: PathBuf,
///
- /// Configuration object of the store
- ///
- configuration: Option<Value>,
-
- ///
/// Internal Path->File cache map
///
/// Caches the files, so they remain flock()ed
@@ -228,10 +223,8 @@ impl Store {
/// Create a new Store object
///
- /// This opens a Store in `location` using the configuration from `store_config` (if absent, it
- /// uses defaults).
- ///
- /// If the configuration is not valid, this fails.
+ /// This opens a Store in `location`. The store_config is used to check whether creating the
+ /// store implicitely is allowed.
///
/// If the location does not exist, creating directories is by default denied and the operation
/// fails, if not configured otherwise.
@@ -243,7 +236,7 @@ impl Store {
///
/// - On success: Store object
///
- pub fn new(location: PathBuf, store_config: Option<Value>) -> Result<Store> {
+ pub fn new(location: PathBuf, store_config: &Option<Value>) -> Result<Store> {
let backend = Box::new(FSFileAbstraction::new());
Store::new_with_backend(location, store_config, backend)
}
@@ -253,16 +246,13 @@ impl Store {
///
/// Do not use directly, only for testing purposes.
pub fn new_with_backend(location: PathBuf,
- store_config: Option<Value>,
+ store_config: &Option<Value>,
backend: Box<FileAbstraction>) -> Result<Store> {
use configuration::*;
- debug!("Validating Store configuration");
- let _ = config_is_valid(&store_config).chain_err(|| SEK::ConfigurationError)?;
-
debug!("Building new Store object");
if !location.exists() {
- if !config_implicit_store_create_allowed(store_config.as_ref()) {
+ if !config_implicit_store_create_allowed(store_config)? {
return Err(SE::from_kind(SEK::CreateStoreDirDenied))
.chain_err(|| SEK::FileError)
.chain_err(|| SEK::IoError);
@@ -279,7 +269,6 @@ impl Store {
let store = Store {
location: location.clone(),
- configuration: store_config,
entries: Arc::new(RwLock::new(HashMap::new())),
backend: backend,
};
@@ -319,11 +308,6 @@ impl Store {
.map(|_| self.backend = backend)
}
- /// Get the store configuration
- pub fn config(&self) -> Option<&Value> {
- self.configuration.as_ref()
- }
-
/// Creates the Entry at the given location (inside the entry)
///
/// # Return value
@@ -786,7 +770,6 @@ impl Debug for Store {
write!(fmt, " --- Store ---\n")?;
write!(fmt, "\n")?;
write!(fmt, " - location : {:?}\n", self.location)?;
- write!(fmt, " - configuration : {:?}\n", self.configuration)?;
write!(fmt, "\n")?;
write!(fmt, "Entries:\n")?;
write!(fmt, "{:?}", self.entries)?;
@@ -1084,9 +1067,15 @@ pub trait Header {
impl Header for Value {
fn verify(&self) -> Result<()> {
- match *self {
- Value::Table(ref t) => verify_header(&t),
- _ => Err(SE::from_kind(SEK::HeaderTypeFailure)),
+ if !has_main_section(self)? {
+ Err(SE::from_kind(SEK::MissingMainSection))
+ } else if !has_imag_version_in_main_section(self)? {
+ Err(SE::from_kind(SEK::MissingVersionInfo))
+ } else if !has_only_tables(self)? {
+ debug!("Could not verify that it only has tables in its base table");
+ Err(SE::from_kind(SEK::NonTableInBaseTable))
+ } else {
+ Ok(())
}
}
@@ -1095,8 +1084,7 @@ impl Header for Value {
from_str(s)
.map_err(From::from)
- .and_then(verify_header_consistency)
- .map(Value::Table)
+ .and_then(|h: Value| h.verify().map(|_| h))
}
fn default_header() -> Value {
@@ -1115,48 +1103,28 @@ impl Header for Value {
}
-fn verify_header_consistency(t: Table) -> Result<Table> {
- verify_header(&t).chain_err(|| SEK::HeaderInconsistency).map(|_| t)
-}
-
-fn verify_header(t: &Table) -> Result<()> {
- if !has_main_section(t) {
- Err(SE::from_kind(SEK::MissingMainSection))
- } else if !has_imag_version_in_main_section(t) {
- Err(SE::from_kind(SEK::MissingVersionInfo))
- } else if !has_only_tables(t) {
- debug!("Could not verify that it only has tables in its base table");
- Err(SE::from_kind(SEK::NonTableInBaseTable))
- } else {
- Ok(())
- }
-}
-
-fn has_only_tables(t: &Table) -> bool {
+fn has_only_tables(t: &Value) -> Result<bool> {
debug!("Verifying that table has only tables");
- t.iter().all(|(_, x)| is_match!(*x, Value::Table(_)))
+ match *t {
+ Value::Table(ref tab) => Ok(tab.iter().all(|(_, x)| is_match!(*x, Value::Table(_)))),
+ _ => Err(SE::from_kind(SEK::HeaderTypeFailure)),
+ }
}
-fn has_main_section(t: &Table) -> bool {
- t.contains_key("imag") && is_match!(t.get("imag"), Some(&Value::Table(_)))
+fn has_main_section(t: &Value) -> Result<bool> {
+ t.read("imag")?
+ .ok_or(SE::from_kind(SEK::ConfigKeyMissingError("imag")))
+ .map(Value::is_table)
}
-fn has_imag_version_in_main_section(t: &Table) -> bool {
- use semver::Version;
+fn has_imag_version_in_main_section(t: &Value) -> Result<bool> {
+ use toml_query::read::TomlValueReadExt;
- match *t.get("imag").unwrap() {
- Value::Table(ref sec) => {
- sec.get("version")
- .and_then(|v| {
- match *v {
- Value::String(ref s) => Some(Version::parse(&s[..]).is_ok()),
- _ => Some(false),
- }
- })
- .unwrap_or(false)
- }
- _ => false,
- }
+ t.read("imag.version")?
+ .ok_or(SE::from_kind(SEK::ConfigKeyMissingError("imag.version")))?
+ .as_str()
+ .map(|s| ::semver::Version::parse(s).is_ok())
+ .ok_or(SE::from_kind(SEK::ConfigTypeError("imag.version", "String")))
}
@@ -1166,9 +1134,9 @@ mod test {
use std::collections::BTreeMap;
use storeid::StoreId;
+ use store::Header;
use store::has_main_section;
use store::has_imag_version_in_main_section;
- use store::verify_header_consistency;
use toml::Value;
@@ -1177,15 +1145,7 @@ mod test {
let mut map = BTreeMap::new();
map.insert("imag".into(), Value::Table(BTreeMap::new()));
- assert!(has_main_section(&map));
- }
-
- #[test]
- fn test_imag_invalid_section_type() {
- let mut map = BTreeMap::new();
- map.insert("imag".into(), Value::Boolean(false));
-
- assert!(!has_main_section(&map));
+ assert!(has_main_section(&Value::Table(map)).unwrap());
}
#[test]
@@ -1193,7 +1153,7 @@ mod test {
let mut map = BTreeMap::new();
map.insert("not_imag".into(), Value::Boolean(false));
- assert!(!has_main_section(&map));
+ assert!(has_main_section(&Value::Table(map)).is_err());
}
#[test]
@@ -1201,7 +1161,7 @@ mod test {
let mut map = BTreeMap::new();
map.insert("imag".into(), Value::Table(BTreeMap::new()));
- assert!(!has_imag_version_in_main_section(&map));
+ assert!(has_imag_version_in_main_section(&Value::Table(map)).is_err());
}
#[test]
@@ -1211,7 +1171,7 @@ mod test {
sub.insert("version".into(), Value::String("0.0.0".into()));
map.insert("imag".into(), Value::Table(sub));
- assert!(has_imag_version_in_main_section(&map));
+ assert!(has_imag_version_in_main_section(&Value::Table(map)).unwrap());
}
#[test]
@@ -1221,7 +1181,7 @@ mod test {
sub.insert("version".into(), Value::Boolean(false));
map.insert("imag".into(), Value::Table(sub));
- assert!(!has_imag_version_in_main_section(&map));
+ assert!(has_imag_version_in_main_section(&Value::Table(map)).is_err());
}
#[test]
@@ -1236,7 +1196,7 @@ mod test {
header.insert("imag".into(), sub);
- assert!(verify_header_consistency(header).is_ok());
+ assert!(Value::Table(header).verify().is_ok());
}
#[test]
@@ -1251,7 +1211,7 @@ mod test {
header.insert("imag".into(), sub);
- assert!(!verify_header_consistency(header).is_ok());
+ assert!(!Value::Table(header).verify().is_ok());
}
@@ -1267,7 +1227,7 @@ mod test {
header.insert("imag".into(), sub);
- assert!(verify_header_consistency(header).is_ok());
+ assert!(Value::Table(header).verify().is_ok());
}
static TEST_ENTRY : &'static str = "---
@@ -1310,7 +1270,7 @@ mod store_tests {
pub fn get_store() -> Store {
let backend = Box::new(InMemoryFileAbstraction::new());
- Store::new_with_backend(PathBuf::from("/"), None, backend).unwrap()
+ Store::new_with_backend(PathBuf::from("/"), &None, backend).unwrap()
}
#[test]
@@ -1354,7 +1314,7 @@ mod store_tests {
// Lets have an empty store as input
let mut input = Cursor::new(r#"
- { "version": "0.5.0",
+ { "version": "0.6.0",
"store": { }
}
"#);
@@ -1363,7 +1323,7 @@ mod store_tests {
let backend = StdIoFileAbstraction::new(&mut input, output.clone(), mapper).unwrap();
let backend = Box::new(backend);
- Store::new_with_backend(PathBuf::from("/"), None, backend).unwrap()
+ Store::new_with_backend(PathBuf::from("/"), &None, backend).unwrap()
};
for n in 1..100 {
@@ -1391,7 +1351,7 @@ mod store_tests {
Value::Object(ref map) => {
assert!(map.get("version").is_some(), format!("No 'version' in JSON"));
match map.get("version").unwrap() {
- &Value::String(ref s) => assert_eq!("0.5.0", s),
+ &Value::String(ref s) => assert_eq!("0.6.0", s),
_ => panic!("Wrong type in JSON at 'version'"),
}
@@ -1636,7 +1596,7 @@ mod store_tests {
let backend = InMemoryFileAbstraction::new();
let backend = Box::new(backend);
- Store::new_with_backend(PathBuf::from("/"), None, backend).unwrap()
+ Store::new_with_backend(PathBuf::from("/"), &None, backend).unwrap()
};
for n in 1..100 {
@@ -1692,12 +1652,12 @@ mod store_tests {
// Lets have an empty store as input
let mut input = Cursor::new(r#"
- { "version": "0.5.0",
+ { "version": "0.6.0",
"store": {
"example": {
"header": {
"imag": {
- "version": "0.5.0"
+ "version": "0.6.0"
}
},
"content": "foobar"
@@ -1711,7 +1671,7 @@ mod store_tests {
let backend = StdIoFileAbstraction::new(&mut input, output, mapper).unwrap();
let backend = Box::new(backend);
- Store::new_with_backend(PathBuf::from("/"), None, backend).unwrap()
+ Store::new_with_backend(PathBuf::from("/"), &None, backend).unwrap()
};
// Replacing the backend
@@ -1741,7 +1701,7 @@ mod store_tests {
Value::Object(ref map) => {
assert!(map.get("version").is_some(), format!("No 'version' in JSON"));
match map.get("version").unwrap() {
- &Value::String(ref s) => assert_eq!("0.5.0", s),
+ &Value::String(ref s) => assert_eq!("0.6.0", s),
_ => panic!("Wrong type in JSON at 'version'"),
}
diff --git a/lib/domain/libimagbookmark/Cargo.toml b/lib/domain/libimagbookmark/Cargo.toml
index 7aa55f4..fa072f5 100644
--- a/lib/domain/libimagbookmark/Cargo.toml
+++ b/lib/domain/libimagbookmark/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagbookmark"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -24,7 +24,7 @@ url = "1.5"
regex = "0.2"
error-chain = "0.11"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentrylink = { version = "0.5.0", path = "../../../lib/entry/libimagentrylink" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentrylink = { version = "0.6.0", path = "../../../lib/entry/libimagentrylink" }
diff --git a/lib/domain/libimagcontact/Cargo.toml b/lib/domain/libimagcontact/Cargo.toml
index 17a2d43..ef3d35d 100644
--- a/lib/domain/libimagcontact/Cargo.toml
+++ b/lib/domain/libimagcontact/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagcontact"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -20,7 +20,7 @@ toml = "0.4"
toml-query = "0.4"
vobject = "0.4"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentryref = { version = "0.5.0", path = "../../../lib/entry/libimagentryref/" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentryref = { version = "0.6.0", path = "../../../lib/entry/libimagentryref/" }
diff --git a/lib/domain/libimagdiary/Cargo.toml b/lib/domain/libimagdiary/Cargo.toml
index c36184e..1e206af 100644
--- a/lib/domain/libimagdiary/Cargo.toml
+++ b/lib/domain/libimagdiary/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagdiary"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -27,8 +27,8 @@ toml-query = "^0.4"
itertools = "0.7"
error-chain = "0.11"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagentryedit = { version = "0.5.0", path = "../../../lib/entry/libimagentryedit" }
-libimagentryview = { version = "0.5.0", path = "../../../lib/entry/libimagentryview" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagentryedit = { version = "0.6.0", path = "../../../lib/entry/libimagentryedit" }
+libimagentryview = { version = "0.6.0", path = "../../../lib/entry/libimagentryview" }
diff --git a/lib/domain/libimaghabit/Cargo.toml b/lib/domain/libimaghabit/Cargo.toml
index 28445e6..cde44ab 100644
--- a/lib/domain/libimaghabit/Cargo.toml
+++ b/lib/domain/libimaghabit/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimaghabit"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -22,7 +22,7 @@ error-chain = "0.11"
is-match = "0.1"
kairos = "0.1.0-beta-2"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentryedit = { version = "0.5.0", path = "../../../lib/entry/libimagentryedit" }
-libimagentrylink = { version = "0.5.0", path = "../../../lib/entry/libimagentrylink" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentryedit = { version = "0.6.0", path = "../../../lib/entry/libimagentryedit" }
+libimagentrylink = { version = "0.6.0", path = "../../../lib/entry/libimagentrylink" }
diff --git a/lib/domain/libimagmail/Cargo.toml b/lib/domain/libimagmail/Cargo.toml
index 145aa48..1f00f56 100644
--- a/lib/domain/libimagmail/Cargo.toml
+++ b/lib/domain/libimagmail/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagmail"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -25,6 +25,6 @@ email = "0.0.17"
filters = "0.2"
error-chain = "0.11"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentryref = { version = "0.5.0", path = "../../../lib/entry/libimagentryref" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentryref = { version = "0.6.0", path = "../../../lib/entry/libimagentryref" }
diff --git a/lib/domain/libimagnotes/Cargo.toml b/lib/domain/libimagnotes/Cargo.toml
index 02a5a09..fab0be1 100644
--- a/lib/domain/libimagnotes/Cargo.toml
+++ b/lib/domain/libimagnotes/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagnotes"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -25,7 +25,7 @@ toml = "0.4"
toml-query = "^0.4"
error-chain = "0.11"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagentryedit = { version = "0.5.0", path = "../../../lib/entry/libimagentryedit" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagentryedit = { version = "0.6.0", path = "../../../lib/entry/libimagentryedit" }
diff --git a/lib/domain/libimagtimetrack/Cargo.toml b/lib/domain/libimagtimetrack/Cargo.toml
index 73178cf..b15377d 100644
--- a/lib/domain/libimagtimetrack/Cargo.toml
+++ b/lib/domain/libimagtimetrack/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagtimetrack"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -28,7 +28,7 @@ lazy_static = "0.2"
is-match = "0.1"
error-chain = "0.11"
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagentrydatetime = { version = "0.5.0", path = "../../../lib/entry/libimagentrydatetime" }
-libimagentrytag = { version = "0.5.0", path = "../../../lib/entry/libimagentrytag" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagentrydatetime = { version = "0.6.0", path = "../../../lib/entry/libimagentrydatetime" }
+libimagentrytag = { version = "0.6.0", path = "../../../lib/entry/libimagentrytag" }
diff --git a/lib/domain/libimagtimetrack/src/iter/mod.rs b/lib/domain/libimagtimetrack/src/iter/mod.rs
index 294f04c..7972099 100644
--- a/lib/domain/libimagtimetrack/src/iter/mod.rs
+++ b/lib/domain/libimagtimetrack/src/iter/mod.rs
@@ -38,7 +38,7 @@ mod test {
use libimagstore::file_abstraction::InMemoryFileAbstraction;
let backend = Box::new(InMemoryFileAbstraction::new());
- Store::new_with_backend(PathBuf::from("/"), None, backend).unwrap()
+ Store::new_with_backend(PathBuf::from("/"), &None, backend).unwrap()
}
#[test]
diff --git a/lib/domain/libimagtodo/Cargo.toml b/lib/domain/libimagtodo/Cargo.toml
index f53adaa..00b6c7c 100644
--- a/lib/domain/libimagtodo/Cargo.toml
+++ b/lib/domain/libimagtodo/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagtodo"
-version = "0.5.0"
+version = "0.6.0"
authors = ["mario <mario-krehl@gmx.de>"]
description = "Library for the imag core distribution"
@@ -28,5 +28,5 @@ log = "0.3"
serde_json = "1"
error-chain = "0.11"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
diff --git a/lib/entry/libimagentryannotation/Cargo.toml b/lib/entry/libimagentryannotation/Cargo.toml
index c352077..1df5834 100644
--- a/lib/entry/libimagentryannotation/Cargo.toml
+++ b/lib/entry/libimagentryannotation/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagentryannotation"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -21,6 +21,6 @@ toml = "0.4"
toml-query = "^0.4"
error-chain = "0.11"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentrylink = { version = "0.5.0", path = "../../../lib/entry/libimagentrylink" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentrylink = { version = "0.6.0", path = "../../../lib/entry/libimagentrylink" }
diff --git a/lib/entry/libimagentrycategory/Cargo.toml b/lib/entry/libimagentrycategory/Cargo.toml
index b8a9610..6cad3e2 100644
--- a/lib/entry/libimagentrycategory/Cargo.toml
+++ b/lib/entry/libimagentrycategory/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagentrycategory"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -26,8 +26,8 @@ toml-query = "^0.4"
is-match = "0.1"
error-chain = "0.11"
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
[dev-dependencies]
env_logger = "0.4"
diff --git a/lib/entry/libimagentrycategory/src/register.rs b/lib/entry/libimagentrycategory/src/register.rs
index af23d5b..d5b4058 100644
--- a/lib/entry/libimagentrycategory/src/register.rs
+++ b/lib/entry/libimagentrycategory/src/register.rs
@@ -130,7 +130,7 @@ mod tests {
pub fn get_store() -> Store {
use libimagstore::store::InMemoryFileAbstraction;
let backend = Box::new(InMemoryFileAbstraction::new());
- Store::new_with_backend(PathBuf::from("/"), None, backend).unwrap()
+ Store::new_with_backend(PathBuf::from("/"), &None, backend).unwrap()
}
#[test]
diff --git a/lib/entry/libimagentrydatetime/Cargo.toml b/lib/entry/libimagentrydatetime/Cargo.toml
index 38d8367..8f78d42 100644
--- a/lib/entry/libimagentrydatetime/Cargo.toml
+++ b/lib/entry/libimagentrydatetime/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagentrydatetime"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -26,6 +26,6 @@ lazy_static = "0.2"
toml = "0.4"
error-chain = "0.11"
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
diff --git a/lib/entry/libimagentrydatetime/src/datetime.rs b/lib/entry/libimagentrydatetime/src/datetime.rs
index 692f1d5..efe9028 100644
--- a/lib/entry/libimagentrydatetime/src/datetime.rs
+++ b/lib/entry/libimagentrydatetime/src/datetime.rs
@@ -225,7 +225,7 @@ mod tests {
pub fn get_store() -> Store {
use libimagstore::store::InMemoryFileAbstraction;
let backend = Box::new(InMemoryFileAbstraction::new());
- Store::new_with_backend(PathBuf::from("/"), None, backend).unwrap()
+ Store::new_with_backend(PathBuf::from("/"), &None, backend).unwrap()
}
#[test]
diff --git a/lib/entry/libimagentryedit/Cargo.toml b/lib/entry/libimagentryedit/Cargo.toml
index 0197b6c..12a2f13 100644
--- a/lib/entry/libimagentryedit/Cargo.toml
+++ b/lib/entry/libimagentryedit/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagentryedit"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -22,7 +22,7 @@ maintenance = { status = "actively-developed" }
[dependencies]
error-chain = "0.11"
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
diff --git a/lib/entry/libimagentryfilter/Cargo.toml b/lib/entry/libimagentryfilter/Cargo.toml
index 2f0ee40..b823cca 100644
--- a/lib/entry/libimagentryfilter/Cargo.toml
+++ b/lib/entry/libimagentryfilter/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagentryfilter"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -29,5 +29,5 @@ semver = "0.8"
toml = "0.4"
toml-query = "^0.4"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagentrytag = { version = "0.5.0", path = "../../../lib/entry/libimagentrytag" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagentrytag = { version = "0.6.0", path = "../../../lib/entry/libimagentrytag" }
diff --git a/lib/entry/libimagentrygps/Cargo.toml b/lib/entry/libimagentrygps/Cargo.toml
index ab6aa88..a314029 100644
--- a/lib/entry/libimagentrygps/Cargo.toml
+++ b/lib/entry/libimagentrygps/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagentrygps"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -22,8 +22,8 @@ serde_derive = "1"
serde = "1"
error-chain = "0.11"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
[dev-dependencies]
env_logger = "0.4"
diff --git a/lib/entry/libimagentrygps/src/entry.rs b/lib/entry/libimagentrygps/src/entry.rs
index 3383e25..3b689fd 100644
--- a/lib/entry/libimagentrygps/src/entry.rs
+++ b/lib/entry/libimagentrygps/src/entry.rs
@@ -116,7 +116,7 @@ mod tests {
fn get_store() -> Store {
use libimagstore::file_abstraction::InMemoryFileAbstraction;
let backend = Box::new(InMemoryFileAbstraction::new());
- Store::new_with_backend(PathBuf::from("/"), None, backend).unwrap()
+ Store::new_with_backend(PathBuf::from("/"), &None, backend).unwrap()
}
#[test]
diff --git a/lib/entry/libimagentrylink/Cargo.toml b/lib/entry/libimagentrylink/Cargo.toml
index c7981e5..52612bc 100644
--- a/lib/entry/libimagentrylink/Cargo.toml
+++ b/lib/entry/libimagentrylink/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagentrylink"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -29,9 +29,9 @@ is-match = "0.1"
toml-query = "^0.4"
error-chain = "0.11"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
[dev-dependencies]
env_logger = "0.4"
diff --git a/lib/entry/libimagentrylink/src/external.rs b/lib/entry/libimagentrylink/src/external.rs
index c3eccfa..2aab774 100644
--- a/lib/entry/libimagentrylink/src/external.rs
+++ b/lib/entry/libimagentrylink/src/external.rs
@@ -421,7 +421,7 @@ mod tests {
pub fn get_store() -> Store {
use libimagstore::file_abstraction::InMemoryFileAbstraction;
let backend = Box::new(InMemoryFileAbstraction::new());
- Store::new_with_backend(PathBuf::from("/"), None, backend).unwrap()
+ Store::new_with_backend(PathBuf::from("/"), &None, backend).unwrap()
}
diff --git a/lib/entry/libimagentrylink/src/internal.rs b/lib/entry/libimagentrylink/src/internal.rs
index 1598feb..d339ff8 100644
--- a/lib/entry/libimagentrylink/src/internal.rs
+++ b/lib/entry/libimagentrylink/src/internal.rs
@@ -778,7 +778,7 @@ mod test {
pub fn get_store() -> Store {
use libimagstore::file_abstraction::InMemoryFileAbstraction;
let backend = Box::new(InMemoryFileAbstraction::new());
- Store::new_with_backend(PathBuf::from("/"), None, backend).unwrap()
+ Store::new_with_backend(PathBuf::from("/"), &None, backend).unwrap()
}
#[test]
diff --git a/lib/entry/libimagentrylist/Cargo.toml b/lib/entry/libimagentrylist/Cargo.toml
index 76d2b72..37db3d7 100644
--- a/lib/entry/libimagentrylist/Cargo.toml
+++ b/lib/entry/libimagentrylist/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagentrylist"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -25,6 +25,6 @@ log = "0.3"
prettytable-rs = "0.6.*"
error-chain = "0.11"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil" }
diff --git a/lib/entry/libimagentrymarkdown/Cargo.toml b/lib/entry/libimagentrymarkdown/Cargo.toml
index c0f1443..165429b 100644
--- a/lib/entry/libimagentrymarkdown/Cargo.toml
+++ b/lib/entry/libimagentrymarkdown/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagentrymarkdown"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -26,9 +26,9 @@ url = "1.5"
error-chain = "0.11"
env_logger = "0.4"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentrylink = { version = "0.5.0", path = "../../../lib/entry/libimagentrylink/" }
-libimagentryref = { version = "0.5.0", path = "../../../lib/entry/libimagentryref/" }
-libimagutil = { version = "0.5.0", path = "../../../lib/etc/libimagutil/" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentrylink = { version = "0.6.0", path = "../../../lib/entry/libimagentrylink/" }
+libimagentryref = { version = "0.6.0", path = "../../../lib/entry/libimagentryref/" }
+libimagutil = { version = "0.6.0", path = "../../../lib/etc/libimagutil/" }
diff --git a/lib/entry/libimagentrymarkdown/src/processor.rs b/lib/entry/libimagentrymarkdown/src/processor.rs
index 943990a..6095206 100644
--- a/lib/entry/libimagentrymarkdown/src/processor.rs
+++ b/lib/entry/libimagentrymarkdown/src/processor.rs
@@ -225,7 +225,7 @@ mod tests {
pub fn get_store() -> Store {
use libimagstore::file_abstraction::InMemoryFileAbstraction;
let fs = InMemoryFileAbstraction::new();
- Store::new_with_backend(PathBuf::from("/"), None, Box::new(fs)).unwrap()
+ Store::new_with_backend(PathBuf::from("/"), &None, Box::new(fs)).unwrap()
}
#[test]
diff --git a/lib/entry/libimagentryref/Cargo.toml b/lib/entry/libimagentryref/Cargo.toml
index c68167c..4a791e4 100644
--- a/lib/entry/libimagentryref/Cargo.toml
+++ b/lib/entry/libimagentryref/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagentryref"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -28,6 +28,6 @@ toml-query = "^0.4"
error-chain = "0.11"
walkdir = "1"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentrylist = { version = "0.5.0", path = "../../../lib/entry/libimagentrylist" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentrylist = { version = "0.6.0", path = "../../../lib/entry/libimagentrylist" }
diff --git a/lib/entry/libimagentrytag/Cargo.toml b/lib/entry/libimagentrytag/Cargo.toml
index 112f83e..febb4f8 100644
--- a/lib/entry/libimagentrytag/Cargo.toml
+++ b/lib/entry/libimagentrytag/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagentrytag"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -30,5 +30,5 @@ filters = "0.2"
toml-query = "^0.4"
error-chain = "0.11"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
diff --git a/lib/entry/libimagentryview/Cargo.toml b/lib/entry/libimagentryview/Cargo.toml
index 16fb5b1..22b3b32 100644
--- a/lib/entry/libimagentryview/Cargo.toml
+++ b/lib/entry/libimagentryview/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagentryview"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -24,7 +24,7 @@ log = "0.3"
toml = "0.4"
error-chain = "0.11"
-libimagrt = { version = "0.5.0", path = "../../../lib/core/libimagrt" }
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
-libimagentryedit = { version = "0.5.0", path = "../../../lib/entry/libimagentryedit" }
+libimagrt = { version = "0.6.0", path = "../../../lib/core/libimagrt" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
+libimagentryedit = { version = "0.6.0", path = "../../../lib/entry/libimagentryedit" }
diff --git a/lib/etc/libimaginteraction/Cargo.toml b/lib/etc/libimaginteraction/Cargo.toml
index 9dfc7f6..534fe29 100644
--- a/lib/etc/libimaginteraction/Cargo.toml
+++ b/lib/etc/libimaginteraction/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimaginteraction"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
@@ -31,5 +31,5 @@ error-chain = "0.11"
handlebars = "0.29.0"
serde_json = "1"
-libimagstore = { version = "0.5.0", path = "../../../lib/core/libimagstore" }
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
+libimagstore = { version = "0.6.0", path = "../../../lib/core/libimagstore" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
diff --git a/lib/etc/libimagnotification/Cargo.toml b/lib/etc/libimagnotification/Cargo.toml
index 88cd385..e56ee93 100644
--- a/lib/etc/libimagnotification/Cargo.toml
+++ b/lib/etc/libimagnotification/Cargo.toml
@@ -1,12 +1,12 @@
[package]
name = "libimagnotification"
-version = "0.4.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
keywords = ["imag", "PIM", "personal", "information", "management"]
-readme = "../README.md"
+readme = "../../../README.md"
license = "LGPL-2.1"
documentation = "https://matthiasbeyer.github.io/imag/imag_documentation/index.html"
@@ -17,5 +17,5 @@ homepage = "http://imag-pim.org"
notify-rust = "3.4.2"
error-chain = "0.11"
-libimagerror = { version = "0.5.0", path = "../../../lib/core/libimagerror" }
+libimagerror = { version = "0.6.0", path = "../../../lib/core/libimagerror" }
diff --git a/lib/etc/libimagtimeui/Cargo.toml b/lib/etc/libimagtimeui/Cargo.toml
index f92794f..bf78cfe 100644
--- a/lib/etc/libimagtimeui/Cargo.toml
+++ b/lib/etc/libimagtimeui/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagtimeui"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
diff --git a/lib/etc/libimagutil/Cargo.toml b/lib/etc/libimagutil/Cargo.toml
index aca2ed1..bd73ae3 100644
--- a/lib/etc/libimagutil/Cargo.toml
+++ b/lib/etc/libimagutil/Cargo.toml
@@ -1,6 +1,6 @@
[package]
name = "libimagutil"
-version = "0.5.0"
+version = "0.6.0"
authors = ["Matthias Beyer <mail@beyermatthias.de>"]
description = "Library for the imag core distribution"
diff --git a/scripts/release.sh b/scripts/release.sh
new file mode 100644
index 0000000..43dfc60
--- /dev/null
+++ b/scripts/release.sh
@@ -0,0 +1,58 @@
+#!/usr/bin/env bash
+
+CRATES=(
+ ./lib/etc/libimagutil
+ ./lib/etc/libimagtimeui
+ ./lib/core/libimagerror
+ ./lib/core/libimagstore
+ ./lib/etc/libimagnotification
+ ./lib/etc/libimaginteraction
+ ./lib/core/libimagrt
+ ./lib/entry/libimagentryfilter
+ ./lib/entry/libimagentrycategory
+ ./lib/entry/libimagentryannotation
+ ./lib/entry/libimagentrylink
+ ./lib/entry/libimagentrytag
+ ./lib/entry/libimagentrygps
+ ./lib/entry/libimagentrylist
+ ./lib/entry/libimagentryedit
+ ./lib/entry/libimagentryref
+ ./lib/entry/libimagentryview
+ ./lib/entry/libimagentrymarkdown
+ ./lib/entry/libimagentrydatetime
+ ./lib/domain/libimagbookmark
+ ./lib/domain/libimaghabit
+ ./lib/domain/libimagnotes
+ ./lib/domain/libimagcontact
+ ./lib/domain/libimagdiary
+ ./lib/domain/libimagtimetrack
+ ./lib/domain/libimagtodo
+ ./lib/domain/libimagmail
+ ./bin/domain/imag-habit
+ ./bin/domain/imag-diary
+ ./bin/domain/imag-contact
+ ./bin/domain/imag-notes
+ ./bin/domain/imag-bookmark
+ ./bin/domain/imag-timetrack
+ ./bin/domain/imag-mail
+ ./bin/domain/imag-todo
+ ./bin/core/imag-ref
+ ./bin/core/imag-gps
+ ./bin/core/imag-diagnostics
+ ./bin/core/imag-mv
+ ./bin/core/imag-store
+ ./bin/core/imag-tag
+ ./bin/core/imag-grep
+ ./bin/core/imag-annotate
+ ./bin/core/imag-link
+ ./bin/core/imag-view
+ ./bin/core/imag
+)
+
+for crate in ${CRATES[*]}; do
+ echo -e "\t[CARGO][CHECK ]\t$crate"
+ RUST_BACKTRACE=1 cargo publish --manifest-path $crate/Cargo.toml || exit 1
+ echo -e "\t[Waiting...]"
+ sleep 15
+done
+