Merge pull request #1426 from matthiasbeyer/remove-version-dependency

Do not depend on "version" crate
This commit is contained in:
Matthias Beyer 2018-04-22 14:39:15 +02:00 committed by GitHub
commit 32a14db059
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 58 additions and 34 deletions

View file

@ -14,6 +14,7 @@ matrix:
- bash ./scripts/find-dead-symlinks - bash ./scripts/find-dead-symlinks
- bash ./scripts/license-headers-updated - bash ./scripts/license-headers-updated
- bash ./scripts/branch-contains-no-tmp-commits - bash ./scripts/branch-contains-no-tmp-commits
- bash ./scripts/version-updated
- language: rust - language: rust
rust: 1.23.0 rust: 1.23.0
cache: cache:

View file

@ -17,7 +17,6 @@ build = "build.rs"
[build-dependencies] [build-dependencies]
clap = ">=2.16.1" clap = ">=2.16.1"
version = "2.0"
libimagrt = { version = "0.8.0", path = "../../../lib/core/libimagrt" } libimagrt = { version = "0.8.0", path = "../../../lib/core/libimagrt" }
libimagentrytag = { version = "0.8.0", path = "../../../lib/entry/libimagentrytag" } libimagentrytag = { version = "0.8.0", path = "../../../lib/entry/libimagentrytag" }
libimagutil = { version = "0.8.0", path = "../../../lib/etc/libimagutil" } libimagutil = { version = "0.8.0", path = "../../../lib/etc/libimagutil" }

View file

@ -18,10 +18,10 @@
// //
extern crate clap; extern crate clap;
#[macro_use]
extern crate libimagrt; extern crate libimagrt;
extern crate libimagentrytag; extern crate libimagentrytag;
extern crate libimagutil; extern crate libimagutil;
#[macro_use] extern crate version;
use clap::Shell; use clap::Shell;
use libimagrt::runtime::Runtime; use libimagrt::runtime::Runtime;
@ -67,8 +67,8 @@ macro_rules! gen_mods_buildui {
/// output of this script is a completion script, which /// output of this script is a completion script, which
/// does not contain information about the version at all. /// does not contain information about the version at all.
macro_rules! build_subcommand { macro_rules! build_subcommand {
($name:expr, $module:ident) => ( ($name:expr, $module:ident, $version:ident) => (
$module::build_ui(Runtime::get_default_cli_builder($name, &version!()[..], $name)) $module::build_ui(Runtime::get_default_cli_builder($name, &$version, $name))
) )
} }
@ -100,33 +100,34 @@ gen_mods_buildui!(
fn main() { fn main() {
// Make the `imag`-App... // Make the `imag`-App...
let version = make_imag_version!();
let mut app = Runtime::get_default_cli_builder( let mut app = Runtime::get_default_cli_builder(
"imag", "imag",
&version!()[..], &version[..],
"imag") "imag")
// and add all the subapps as subcommands. // and add all the subapps as subcommands.
.subcommand(build_subcommand!("annotate", imagannotate)) .subcommand(build_subcommand!("annotate", imagannotate, version))
.subcommand(build_subcommand!("diagnostics", imagdiagnostics)) .subcommand(build_subcommand!("diagnostics", imagdiagnostics, version))
.subcommand(build_subcommand!("edit", imagedit)) .subcommand(build_subcommand!("edit", imagedit, version))
.subcommand(build_subcommand!("gps", imaggps)) .subcommand(build_subcommand!("gps", imaggps, version))
.subcommand(build_subcommand!("grep", imaggrep)) .subcommand(build_subcommand!("grep", imaggrep, version))
.subcommand(build_subcommand!("ids", imagids)) .subcommand(build_subcommand!("ids", imagids, version))
.subcommand(build_subcommand!("init", imaginit)) .subcommand(build_subcommand!("init", imaginit, version))
.subcommand(build_subcommand!("link", imaglink)) .subcommand(build_subcommand!("link", imaglink, version))
.subcommand(build_subcommand!("mv", imagmv)) .subcommand(build_subcommand!("mv", imagmv, version))
.subcommand(build_subcommand!("ref", imagref)) .subcommand(build_subcommand!("ref", imagref, version))
.subcommand(build_subcommand!("store", imagstore)) .subcommand(build_subcommand!("store", imagstore, version))
.subcommand(build_subcommand!("tag", imagtag)) .subcommand(build_subcommand!("tag", imagtag, version))
.subcommand(build_subcommand!("view", imagview)) .subcommand(build_subcommand!("view", imagview, version))
.subcommand(build_subcommand!("bookmark", imagbookmark)) .subcommand(build_subcommand!("bookmark", imagbookmark, version))
.subcommand(build_subcommand!("contact", imagcontact)) .subcommand(build_subcommand!("contact", imagcontact, version))
.subcommand(build_subcommand!("diary", imagdiary)) .subcommand(build_subcommand!("diary", imagdiary, version))
.subcommand(build_subcommand!("habit", imaghabit)) .subcommand(build_subcommand!("habit", imaghabit, version))
.subcommand(build_subcommand!("log", imaglog)) .subcommand(build_subcommand!("log", imaglog, version))
.subcommand(build_subcommand!("mail", imagmail)) .subcommand(build_subcommand!("mail", imagmail, version))
.subcommand(build_subcommand!("notes", imagnotes)) .subcommand(build_subcommand!("notes", imagnotes, version))
.subcommand(build_subcommand!("timetrack", imagtimetrack)) .subcommand(build_subcommand!("timetrack", imagtimetrack, version))
.subcommand(build_subcommand!("todo", imagtodo)); .subcommand(build_subcommand!("todo", imagtodo, version));
// Actually generates the completion files // Actually generates the completion files
app.gen_completions("imag", Shell::Bash, "../../../target/"); app.gen_completions("imag", Shell::Bash, "../../../target/");

View file

@ -21,7 +21,6 @@ log = "0.3"
toml = "0.4" toml = "0.4"
toml-query = "0.6" toml-query = "0.6"
is-match = "0.1" is-match = "0.1"
version = "2.0.1"
regex = "0.2" regex = "0.2"
filters = "0.2" filters = "0.2"

View file

@ -20,13 +20,18 @@
#[macro_export] #[macro_export]
macro_rules! make_imag_version { macro_rules! make_imag_version {
() => {{ () => {{
let pkg_version = env!("CARGO_PKG_VERSION"); let pkg_version = option_env!("CARGO_PKG_VERSION");
let git_version = env!("CARGO_BUILD_VERSION"); let git_version = option_env!("CARGO_BUILD_VERSION");
if git_version == "" { match (git_version, pkg_version) {
(Some(git_version), Some(pkg_version)) => if git_version == "" {
String::from(pkg_version) String::from(pkg_version)
} else { } else {
String::from(git_version) String::from(git_version)
},
// imag is not beeing build with cargo... we have to set it by hand here.
_ => String::from("0.8.0"),
} }
}} }}
} }

View file

@ -1,5 +1,12 @@
#!/usr/bin/env bash #!/usr/bin/env bash
echo "Are you sure that the files"
echo " * 'lib/core/libimagrt/src/version.rs'"
echo " * 'scripts/version-updated'"
echo "contain the right version setting?"
echo "If yes, pass '--I-AM-SURE-VERSION-IS-UPDATED' as parameter"
[[ "--I-AM-SURE-VERSION-IS-UPDATED" == $1 ]] || exit 1
CRATES=( CRATES=(
./lib/etc/libimagutil ./lib/etc/libimagutil

12
scripts/version-updated Normal file
View file

@ -0,0 +1,12 @@
#!/usr/bin/env bash
# Script has to be executed from the repository root directory.
version=$(grep version bin/core/imag/Cargo.toml | head -n 1 | sed 's,.*=\ ",,; s,"$,,')
grep "String::from(\"${version}\")" lib/core/libimagrt/src/version.rs 2>/dev/null >/dev/null || \
{
>&2 echo "No/incorrect version in lib/core/libimagrt/src/version.rs"
exit 1
}