getversion 0.0.8 → 0.0.9
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/getversion.rb +0 -0
- data/lib/getversion/detectors/apple.rb +2 -2
- data/lib/getversion/detectors/google.rb +2 -2
- data/lib/getversion/detectors/jetbrains.rb +1 -1
- data/lib/getversion/detectors/microsoft.rb +8 -8
- data/lib/getversion/detectors/rubygems.rb +3 -3
- data/lib/getversion/detectors/uncategorised.rb +2 -2
- data/lib/getversion/executable.rb +7 -20
- data/lib/getversion/executable_store.rb +6 -3
- data/lib/getversion/platform_versions.rb +3 -1
- data/lib/getversion/version_finder.rb +4 -19
- metadata +15 -4
data/bin/getversion.rb
CHANGED
File without changes
|
@@ -2,35 +2,35 @@ module GetVersion
|
|
2
2
|
|
3
3
|
namespace :microsoft
|
4
4
|
|
5
|
-
executable
|
5
|
+
executable :aspnet_compiler do
|
6
6
|
GetVersion['msbuild']
|
7
7
|
end
|
8
8
|
|
9
|
-
executable
|
9
|
+
executable :installutil do
|
10
10
|
find_version_in_output
|
11
11
|
end
|
12
12
|
|
13
|
-
executable
|
13
|
+
executable :msbuild do
|
14
14
|
find_version_in_output '/version'
|
15
15
|
end
|
16
16
|
|
17
|
-
executable
|
17
|
+
executable :msdeploy do
|
18
18
|
find_version_in_output
|
19
19
|
end
|
20
20
|
|
21
|
-
executable
|
21
|
+
executable :mstest do
|
22
22
|
find_version_in_output '/help'
|
23
23
|
end
|
24
24
|
|
25
|
-
executable
|
25
|
+
executable :netsh do
|
26
26
|
windows_version
|
27
27
|
end
|
28
28
|
|
29
|
-
executable
|
29
|
+
executable :nuget do
|
30
30
|
find_version_in_output
|
31
31
|
end
|
32
32
|
|
33
|
-
executable
|
33
|
+
executable :tf do
|
34
34
|
find_version_in_output
|
35
35
|
end
|
36
36
|
|
@@ -2,15 +2,15 @@ module GetVersion
|
|
2
2
|
|
3
3
|
namespace :rubygems
|
4
4
|
|
5
|
-
executable
|
5
|
+
executable :bundle do
|
6
6
|
find_version_in_output '--version'
|
7
7
|
end
|
8
8
|
|
9
|
-
executable
|
9
|
+
executable :cucumber do
|
10
10
|
find_version_in_output '--version'
|
11
11
|
end
|
12
12
|
|
13
|
-
executable
|
13
|
+
executable :rake do
|
14
14
|
find_version_in_output '--version'
|
15
15
|
end
|
16
16
|
|
@@ -4,31 +4,18 @@ require_relative 'execution_context'
|
|
4
4
|
module GetVersion
|
5
5
|
class Executable
|
6
6
|
|
7
|
-
attr_reader :
|
7
|
+
attr_reader :block
|
8
8
|
|
9
|
-
def initialize(
|
10
|
-
@
|
11
|
-
@namespace = namespace
|
12
|
-
@block = block
|
9
|
+
def initialize(&block)
|
10
|
+
@block = block || Proc.new {}
|
13
11
|
end
|
14
12
|
|
15
|
-
def version(
|
16
|
-
ExecutionContext.execute path
|
13
|
+
def version(path)
|
14
|
+
ExecutionContext.execute path, &@block
|
17
15
|
end
|
18
16
|
|
19
|
-
def self.version(
|
20
|
-
Executable.new(
|
21
|
-
end
|
22
|
-
|
23
|
-
private
|
24
|
-
|
25
|
-
def path(name, dir=nil)
|
26
|
-
path = WickedWitch[name]
|
27
|
-
raise "#{name} not found." unless path
|
28
|
-
dir ||= File.dirname(path)
|
29
|
-
dir = nil if dir == '.'
|
30
|
-
return name unless dir
|
31
|
-
File.join dir, name
|
17
|
+
def self.version(path, &block)
|
18
|
+
Executable.new(&block).version(path)
|
32
19
|
end
|
33
20
|
|
34
21
|
end
|
@@ -8,12 +8,15 @@ module GetVersion
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def add_executable(name, namespace, &block)
|
11
|
-
@executables <<
|
11
|
+
@executables << {name: name.to_sym, namespace: namespace.to_sym, value: Executable.new(&block)}
|
12
12
|
end
|
13
13
|
|
14
|
-
def get_executable(
|
14
|
+
def get_executable(path)
|
15
|
+
basename = File.basename path
|
16
|
+
name = basename == path ? path : basename
|
15
17
|
possibilities = [name, File.basename(name, '.*')]
|
16
|
-
@executables.find { |e| possibilities.find { |p| p.casecmp(e.
|
18
|
+
executable = @executables.find { |e| possibilities.find { |p| p.casecmp(e[:name].to_s) == 0 } }
|
19
|
+
executable[:value] if executable
|
17
20
|
end
|
18
21
|
|
19
22
|
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
require 'wicked_witch'
|
1
2
|
require 'yaml'
|
2
3
|
require_relative 'executable'
|
3
4
|
|
@@ -5,7 +6,8 @@ module GetVersion
|
|
5
6
|
module PlatformVersions
|
6
7
|
|
7
8
|
def google_appengine_version
|
8
|
-
|
9
|
+
realpath = WickedWitch[@path]
|
10
|
+
dir = File.dirname realpath
|
9
11
|
version_file = File.join dir, 'VERSION'
|
10
12
|
YAML::load_file(version_file)['release']
|
11
13
|
end
|
@@ -19,31 +19,16 @@ module GetVersion
|
|
19
19
|
private
|
20
20
|
|
21
21
|
def get(executable_if_nil)
|
22
|
-
executable = @executable_store.get_executable(
|
23
|
-
executable.version
|
24
|
-
end
|
25
|
-
|
26
|
-
def path
|
27
|
-
@path
|
28
|
-
end
|
29
|
-
|
30
|
-
def name
|
31
|
-
File.basename path
|
32
|
-
end
|
33
|
-
|
34
|
-
def dir
|
35
|
-
dir = File.dirname path
|
36
|
-
dir = nil if dir == '.'
|
37
|
-
dir
|
22
|
+
executable = @executable_store.get_executable(@path) || executable_if_nil
|
23
|
+
executable.version @path
|
38
24
|
end
|
39
25
|
|
40
26
|
def null_executable
|
41
|
-
Executable.new
|
42
|
-
end
|
27
|
+
Executable.new
|
43
28
|
end
|
44
29
|
|
45
30
|
def executable_for_guessing
|
46
|
-
Executable.new
|
31
|
+
Executable.new do
|
47
32
|
args = %w(--version -version /version version --help -help /help help) << nil
|
48
33
|
versions = args.map { |arg| find_version_in_output arg }.compact.uniq
|
49
34
|
versions[0] if versions.length == 1
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: getversion
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.9
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-08-
|
12
|
+
date: 2013-08-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: wicked_witch
|
16
|
-
requirement: &
|
16
|
+
requirement: &70288378670740 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,7 +21,18 @@ dependencies:
|
|
21
21
|
version: 0.0.3
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70288378670740
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: test-unit
|
27
|
+
requirement: &70288378670260 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.5.5
|
33
|
+
type: :development
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *70288378670260
|
25
36
|
description: Provides a standard interface for obtaining CLI application version numbers.
|
26
37
|
email: matthew@matthewriley.name
|
27
38
|
executables:
|