From 4e1c51cb894ec1c8bea6da4062ba193ae4779d45 Mon Sep 17 00:00:00 2001 From: Michael Toy Date: Mon, 20 Mar 2017 13:50:37 -0700 Subject: [PATCH] Make gem self versioning --- nullgem.gemspec | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/nullgem.gemspec b/nullgem.gemspec index 3388824..0f49611 100644 --- a/nullgem.gemspec +++ b/nullgem.gemspec @@ -1,7 +1,18 @@ Gem::Specification.new do |gem| gem.name = "nullgem" - gem.version = '0.0.0' - gem.date = '2001-01-01' + gem.version = begin + head_sha = %x{git rev-parse HEAD}.strip + tag_version = %x{git name-rev --tags --name-only #{head_sha}}.strip + untracked_files = (%x{git ls-files --others --exclude-standard}.strip != '') + _diff_status_only = %x{git diff --quiet --exit-code HEAD} + head_diff = ($?.exitstatus != 0) + + version = (tag_version =~ /^\d+\.\d+\.\d+$/) ? tag_version : "0.0.0.#{head_sha[0..7]}" + dev_tag = (untracked_files || head_diff) ? '-dev' : '' + + version + dev_tag + end + gem.date = '2012-03-04' gem.authors = ["Michael Toy"] gem.email = ["michael@toyland.org"] gem.description = %q{A gem which does nothing, for testing}