diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2018-02-20 13:37:10 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2018-02-20 13:37:10 +0100 |
commit | dd8d4e6fa4175ceeefdc07f5f12ba4f42a98382a (patch) | |
tree | c33addd8ad3bea59fd628d2d7243166feabfe687 | |
parent | 2c0c8347e973dcd0c4113700eba37b67959561ed (diff) |
Add imag-ids core command
-rw-r--r-- | Cargo.toml | 1 | ||||
-rw-r--r-- | bin/core/imag-ids/Cargo.toml | 33 | ||||
-rw-r--r-- | bin/core/imag-ids/src/main.rs | 74 | ||||
-rw-r--r-- | scripts/release.sh | 1 |
4 files changed, 109 insertions, 0 deletions
@@ -6,6 +6,7 @@ members = [ "bin/core/imag-edit", "bin/core/imag-gps", "bin/core/imag-grep", + "bin/core/imag-ids", "bin/core/imag-init", "bin/core/imag-link", "bin/core/imag-mv", diff --git a/bin/core/imag-ids/Cargo.toml b/bin/core/imag-ids/Cargo.toml new file mode 100644 index 00000000..00177775 --- /dev/null +++ b/bin/core/imag-ids/Cargo.toml @@ -0,0 +1,33 @@ +[package] +name = "imag-ids" +version = "0.7.0" +authors = ["Matthias Beyer <mail@beyermatthias.de>"] + +description = "Part of the imag core distribution: imag-ids command" + +keywords = ["imag", "PIM", "personal", "information", "management"] +readme = "../../../README.md" +license = "LGPL-2.1" + +documentation = "https://matthiasbeyer.github.io/imag/imag_documentation/index.html" +repository = "https://github.com/matthiasbeyer/imag" +homepage = "http://imag-pim.org" + +build = "../../../build.rs" + +[badges] +travis-ci = { repository = "matthiasbeyer/imag" } +is-it-maintained-issue-resolution = { repository = "matthiasbeyer/imag" } +is-it-maintained-open-issues = { repository = "matthiasbeyer/imag" } +maintenance = { status = "actively-developed" } + +[dependencies] +libimagstore = { version = "0.7.0", path = "../../../lib/core/libimagstore" } +libimagrt = { version = "0.7.0", path = "../../../lib/core/libimagrt" } +libimagerror = { version = "0.7.0", path = "../../../lib/core/libimagerror" } + +[dependencies.clap] +version = ">=2.29" +default-features = false +features = ["color", "suggestions"] + diff --git a/bin/core/imag-ids/src/main.rs b/bin/core/imag-ids/src/main.rs new file mode 100644 index 00000000..3b3a4638 --- /dev/null +++ b/bin/core/imag-ids/src/main.rs @@ -0,0 +1,74 @@ +// +// imag - the personal information management suite for the commandline +// Copyright (C) 2015-2018 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 +// + +#![deny( + non_camel_case_types, + non_snake_case, + path_statements, + trivial_numeric_casts, + unstable_features, + unused_allocation, + unused_import_braces, + unused_imports, + unused_must_use, + unused_mut, + unused_qualifications, + while_true, +)] + +extern crate clap; + +extern crate libimagerror; +extern crate libimagstore; +#[macro_use] extern crate libimagrt; + +use std::io::Write; + +use clap::App; + +use libimagrt::setup::generate_runtime_setup; +use libimagerror::trace::MapErrTrace; +use libimagerror::exit::ExitUnwrap; +use libimagerror::io::ToExitCode; + + +/// No special CLI +pub fn build_ui<'a>(app: App<'a, 'a>) -> App<'a, 'a> { + app +} + +fn main() { + let version = make_imag_version!(); + let rt = generate_runtime_setup("imag-ids", + &version, + "print all ids", + build_ui); + + let mut out = ::std::io::stdout(); + + rt.store() + .entries() + .map_err_trace_exit_unwrap(1) + .for_each(|id| { + let _ = writeln!(out, "{}", id.to_str().map_err_trace_exit_unwrap(1)) + .to_exit_code() + .unwrap_or_exit(); + }) +} + diff --git a/scripts/release.sh b/scripts/release.sh index 2a285591..7eea233d 100644 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -52,6 +52,7 @@ CRATES=( ./bin/core/imag-view ./bin/core/imag-init ./bin/core/imag-edit + ./bin/core/imag-ids ./bin/core/imag ) |