gitv 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 51080d1d563e7231538ddc5a5c3f72d315442318
4
+ data.tar.gz: a0215abb0d6e0ea494659b25a7299fa505297931
5
+ SHA512:
6
+ metadata.gz: 3982a4b73cb8efe2a199d9987427d4235c1c1be7b0a8d5d672f0fb6fe82c2056d9ce9f26297395a48ed180a6bb393d8e0643e9f98ab65637b096e9867ca7b711
7
+ data.tar.gz: c4b7c7ddaeaa682dcd8cc00e1c3a579f3b8b6d29b7046e0eea8759830dc1cf99f4d778f2a993477e15db54bf4aeb0b289924eeaacab5d15b030a5aa269d23d0a
@@ -0,0 +1,19 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'colorize'
4
+ require_relative '../lib/gitv'
5
+
6
+ begin
7
+ case ARGV[0]
8
+ when 'help', '--help', '-h'
9
+ puts "Usage [help|--help|-h] [source root] [cached version file]"
10
+ when 'version', '--version', '-v'
11
+ puts GitV.new( File.join( File.dirname(__FILE__), '..' ) ).version
12
+ else
13
+ puts GitV.new( ARGV[0], ARGV[1] ).version
14
+ end
15
+ rescue => e
16
+ STDERR.puts
17
+ STDERR.puts "ERROR: #{e}".red
18
+ STDERR.puts
19
+ end
@@ -0,0 +1 @@
1
+ 0.0.1
@@ -0,0 +1 @@
1
+ require_relative 'gitv/gitv'
@@ -0,0 +1,38 @@
1
+ class GitV
2
+ def initialize(src_root = nil, version_file = nil)
3
+ @src_root = src_root || Dir.pwd
4
+ @version_file = version_file || File.join( 'lib', 'data', 'version' )
5
+ @abs_version_file = File.join( @src_root, @version_file )
6
+ end
7
+
8
+ def version
9
+ @ver ||= retrieve_info
10
+ end
11
+
12
+ def cache
13
+ FileUtils.rm_rf( @abs_version_file )
14
+ FileUtils.mkdir_p( File.dirname( @abs_version_file ) )
15
+ File.write( @abs_version_file, version )
16
+
17
+ @version_file
18
+ end
19
+
20
+ private
21
+
22
+ def retrieve_info
23
+ File.directory?( File.join( @src_root, '.git' ) ) ? git_version : cached_version
24
+ end
25
+
26
+ def cached_version
27
+ File.read( @abs_version_file )
28
+ end
29
+
30
+ def git_version
31
+ v = %x(git describe --tags --dirty)
32
+ if m = v.match( /^v([0-9]+)\.([0-9]+)\.([0-9]+)(.*)$/ )
33
+ "#{m[1]}.#{m[2]}.#{m[3]}#{m[4].gsub( '-', '.' )}"
34
+ else
35
+ raise "Failed to parse version string #{v}"
36
+ end
37
+ end
38
+ end
metadata ADDED
@@ -0,0 +1,122 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gitv
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Dmitry Fleytman
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-04-30 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: colorize
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 0.8.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 0.8.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: travis
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '1.8'
34
+ - - ">="
35
+ - !ruby/object:Gem::Version
36
+ version: 1.8.2
37
+ type: :development
38
+ prerelease: false
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - "~>"
42
+ - !ruby/object:Gem::Version
43
+ version: '1.8'
44
+ - - ">="
45
+ - !ruby/object:Gem::Version
46
+ version: 1.8.2
47
+ - !ruby/object:Gem::Dependency
48
+ name: rubygems-tasks
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '0.2'
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: 0.2.4
57
+ type: :development
58
+ prerelease: false
59
+ version_requirements: !ruby/object:Gem::Requirement
60
+ requirements:
61
+ - - "~>"
62
+ - !ruby/object:Gem::Version
63
+ version: '0.2'
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: 0.2.4
67
+ - !ruby/object:Gem::Dependency
68
+ name: rake
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - "~>"
72
+ - !ruby/object:Gem::Version
73
+ version: '11.2'
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ version: 11.2.2
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '11.2'
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: 11.2.2
87
+ description: Yet another gem for versioning based on git tags
88
+ email: rbld-devel@rbld.io
89
+ executables:
90
+ - gitv
91
+ extensions: []
92
+ extra_rdoc_files: []
93
+ files:
94
+ - bin/gitv
95
+ - lib/data/version
96
+ - lib/gitv.rb
97
+ - lib/gitv/gitv.rb
98
+ homepage: http://rbld.io/
99
+ licenses:
100
+ - Apache-2.0
101
+ metadata: {}
102
+ post_install_message:
103
+ rdoc_options: []
104
+ require_paths:
105
+ - lib
106
+ required_ruby_version: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: 2.0.0
111
+ required_rubygems_version: !ruby/object:Gem::Requirement
112
+ requirements:
113
+ - - ">="
114
+ - !ruby/object:Gem::Version
115
+ version: '0'
116
+ requirements: []
117
+ rubyforge_project:
118
+ rubygems_version: 2.6.11
119
+ signing_key:
120
+ specification_version: 4
121
+ summary: gitv-0.0.1
122
+ test_files: []