klaas1979-ivy4r 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +5 -0
- data/Manifest.txt +35 -0
- data/README.txt +91 -0
- data/Rakefile +24 -0
- data/bin/ivy4r +0 -0
- data/lib/ivy/artifactproperty.rb +34 -0
- data/lib/ivy/artifactreport.rb +24 -0
- data/lib/ivy/buildlist.rb +37 -0
- data/lib/ivy/buildnumber.rb +34 -0
- data/lib/ivy/cachepath.rb +30 -0
- data/lib/ivy/cleancache.rb +20 -0
- data/lib/ivy/configure.rb +29 -0
- data/lib/ivy/findrevision.rb +34 -0
- data/lib/ivy/info.rb +36 -0
- data/lib/ivy/listmodules.rb +35 -0
- data/lib/ivy/makepom.rb +23 -0
- data/lib/ivy/publish.rb +37 -0
- data/lib/ivy/report.rb +33 -0
- data/lib/ivy/resolve.rb +44 -0
- data/lib/ivy/retrieve.rb +27 -0
- data/lib/ivy/settings.rb +15 -0
- data/lib/ivy/target.rb +122 -0
- data/lib/ivy/targets.rb +49 -0
- data/lib/ivy4r.rb +176 -0
- data/test/buildlist/p1/buildfile +0 -0
- data/test/buildlist/p1/ivy.xml +7 -0
- data/test/buildlist/sub/p2/buildfile +0 -0
- data/test/buildlist/sub/p2/ivy.xml +11 -0
- data/test/buildlist/sub/p3/buildfile +0 -0
- data/test/buildlist/sub/p3/ivy.xml +11 -0
- data/test/ivy/ivysettings.xml +11 -0
- data/test/ivy/ivytest.xml +18 -0
- data/test/ivy/test_target.rb +97 -0
- data/test/ivy/test_targets.rb +36 -0
- data/test/test_ivy4r.rb +196 -0
- metadata +112 -0
data/History.txt
ADDED
data/Manifest.txt
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
History.txt
|
2
|
+
Manifest.txt
|
3
|
+
README.txt
|
4
|
+
Rakefile
|
5
|
+
lib/ivy/artifactproperty.rb
|
6
|
+
lib/ivy/artifactreport.rb
|
7
|
+
lib/ivy/buildlist.rb
|
8
|
+
lib/ivy/buildnumber.rb
|
9
|
+
lib/ivy/cachepath.rb
|
10
|
+
lib/ivy/cleancache.rb
|
11
|
+
lib/ivy/configure.rb
|
12
|
+
lib/ivy/findrevision.rb
|
13
|
+
lib/ivy/info.rb
|
14
|
+
lib/ivy/listmodules.rb
|
15
|
+
lib/ivy/makepom.rb
|
16
|
+
lib/ivy/publish.rb
|
17
|
+
lib/ivy/report.rb
|
18
|
+
lib/ivy/resolve.rb
|
19
|
+
lib/ivy/retrieve.rb
|
20
|
+
lib/ivy/settings.rb
|
21
|
+
lib/ivy/target.rb
|
22
|
+
lib/ivy/targets.rb
|
23
|
+
lib/ivy4r.rb
|
24
|
+
test/buildlist/p1/buildfile
|
25
|
+
test/buildlist/p1/ivy.xml
|
26
|
+
test/buildlist/sub/p2/buildfile
|
27
|
+
test/buildlist/sub/p2/ivy.xml
|
28
|
+
test/buildlist/sub/p3/buildfile
|
29
|
+
test/buildlist/sub/p3/ivy.xml
|
30
|
+
test/ivy/ivysettings.xml
|
31
|
+
test/ivy/ivytest.xml
|
32
|
+
test/ivy/test_target.rb
|
33
|
+
test/ivy/test_targets.rb
|
34
|
+
test/test_ivy4r.rb
|
35
|
+
|
data/README.txt
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
= ivy4r
|
2
|
+
|
3
|
+
* http://github.com/klaas1979/ivy4r/tree/master
|
4
|
+
|
5
|
+
== DESCRIPTION:
|
6
|
+
|
7
|
+
Apache Ivy dependency manager wrapper for ruby (see http://ant.apache.org/ivy/index.html for more information).Use Ivy via a ruby wrapper without the need to use Apache Ant.
|
8
|
+
The wrapper uses Antwrap (see http://antwrap.rubyforge.org/) to interface with Ivy.
|
9
|
+
|
10
|
+
== FEATURES/PROBLEMS:
|
11
|
+
|
12
|
+
Supports most standard Ivy Ant targets via Antwrap.
|
13
|
+
|
14
|
+
=== Supported Ivy targets:
|
15
|
+
* info
|
16
|
+
* settings
|
17
|
+
* configure
|
18
|
+
* cleancache
|
19
|
+
* buildnumber
|
20
|
+
* findrevision
|
21
|
+
* cachepath
|
22
|
+
* artifactreport
|
23
|
+
* resolve
|
24
|
+
* makepom
|
25
|
+
* retrieve
|
26
|
+
* publish
|
27
|
+
* artifactproperty
|
28
|
+
* report
|
29
|
+
* buildlist
|
30
|
+
* deliver
|
31
|
+
* install
|
32
|
+
* repreport
|
33
|
+
|
34
|
+
=== Currently not working Ivy targets:
|
35
|
+
* listmodules
|
36
|
+
|
37
|
+
=== Ivy targets that need to be implemented:
|
38
|
+
* deliver
|
39
|
+
* install
|
40
|
+
* repreport
|
41
|
+
|
42
|
+
=== Unsupported Ivy Targets (they make no sense for the wrapper):
|
43
|
+
* cachefileset
|
44
|
+
* var
|
45
|
+
|
46
|
+
== SYNOPSIS:
|
47
|
+
|
48
|
+
To init a new Ivy4r instance set the ANT_HOME and the Ivy lib dir
|
49
|
+
<tt>
|
50
|
+
ivy4r = Ivy4r.new
|
51
|
+
ivy4r.ant_home = 'PATH TO YOUR ANTHME'
|
52
|
+
ivy4r.lib_dir = 'PATH TO IVY LIB DIR'
|
53
|
+
</tt>
|
54
|
+
as an alternative to setting the ANT_HOME you can set an +Antwrap+ instance directly:
|
55
|
+
<tt>
|
56
|
+
ivy4r.ant = Buildr.ant('ivy')
|
57
|
+
</tt>
|
58
|
+
|
59
|
+
== REQUIREMENTS:
|
60
|
+
|
61
|
+
* Installed Apache Ant, to call Ivy via Antwrap.
|
62
|
+
* Ivy and dependencies in a single directory. Dependencies depends on used features, see the ivy homepage for more information.
|
63
|
+
|
64
|
+
== INSTALL:
|
65
|
+
|
66
|
+
* sudo gem install ivy4r
|
67
|
+
|
68
|
+
== LICENSE:
|
69
|
+
|
70
|
+
(The MIT License)
|
71
|
+
|
72
|
+
Copyright (c) 2009 blau Mobilfunk GmbH
|
73
|
+
|
74
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
75
|
+
a copy of this software and associated documentation files (the
|
76
|
+
'Software'), to deal in the Software without restriction, including
|
77
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
78
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
79
|
+
permit persons to whom the Software is furnished to do so, subject to
|
80
|
+
the following conditions:
|
81
|
+
|
82
|
+
The above copyright notice and this permission notice shall be
|
83
|
+
included in all copies or substantial portions of the Software.
|
84
|
+
|
85
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
86
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
87
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
88
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
89
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
90
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
91
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- ruby -*-
|
2
|
+
$:.unshift File.join(File.dirname(__FILE__), 'lib')
|
3
|
+
|
4
|
+
require 'rubygems'
|
5
|
+
require 'hoe'
|
6
|
+
require 'ivy4r'
|
7
|
+
|
8
|
+
hoe = Hoe.spec 'ivy4r' do |p|
|
9
|
+
# self.rubyforge_name = 'ivy4rx' # if different than 'ivy4r'
|
10
|
+
p.developer('Klaas Prause', 'klaas.prause@googlemail.com')
|
11
|
+
p.extra_deps = [['Antwrap', '>=0.7.0']]
|
12
|
+
File.open(File.join(File.dirname(__FILE__), 'VERSION'), 'w') do |file|
|
13
|
+
file.puts Ivy4r::VERSION
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
begin
|
18
|
+
require 'jeweler'
|
19
|
+
Jeweler::Tasks.new(hoe.spec)
|
20
|
+
rescue LoadError
|
21
|
+
puts "Jeweler not available. Install it with: sudo gem install technicalpickles-jeweler -s http://gems.github.com"
|
22
|
+
end
|
23
|
+
|
24
|
+
# vim: syntax=ruby
|
data/bin/ivy4r
ADDED
File without changes
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'ivy/target'
|
2
|
+
|
3
|
+
module Ivy
|
4
|
+
class Artifactproperty < Ivy::Target
|
5
|
+
def parameter
|
6
|
+
[
|
7
|
+
Parameter.new(:name, true),
|
8
|
+
Parameter.new(:value, true),
|
9
|
+
Parameter.new(:conf, false),
|
10
|
+
Parameter.new(:haltonfailure, false),
|
11
|
+
Parameter.new(:validate, false),
|
12
|
+
Parameter.new(:overwrite, false),
|
13
|
+
Parameter.new(:settingsRef, false),
|
14
|
+
]
|
15
|
+
end
|
16
|
+
|
17
|
+
protected
|
18
|
+
def before_hook
|
19
|
+
@cached_property_names = ant_properties.map {|key, value| key }
|
20
|
+
end
|
21
|
+
|
22
|
+
def after_hook
|
23
|
+
@cached_property_names = nil
|
24
|
+
end
|
25
|
+
|
26
|
+
def execute_ivy
|
27
|
+
call_nested :ivy_artifactproperty => params
|
28
|
+
end
|
29
|
+
|
30
|
+
def create_return_values
|
31
|
+
ant_properties.reject { |key, value| @cached_property_names.member? key }
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'ivy/target'
|
2
|
+
|
3
|
+
module Ivy
|
4
|
+
class Artifactreport < Ivy::Target
|
5
|
+
def parameter
|
6
|
+
[
|
7
|
+
Parameter.new(:tofile, true),
|
8
|
+
Parameter.new(:pattern, false),
|
9
|
+
Parameter.new(:conf, false),
|
10
|
+
Parameter.new(:haltonfailure, false),
|
11
|
+
Parameter.new(:settingsRef, false)
|
12
|
+
]
|
13
|
+
end
|
14
|
+
|
15
|
+
protected
|
16
|
+
def execute_ivy
|
17
|
+
call_nested :ivy_artifactreport => params
|
18
|
+
end
|
19
|
+
|
20
|
+
def create_return_values
|
21
|
+
IO.read(params[:tofile])
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'ivy/target'
|
2
|
+
|
3
|
+
module Ivy
|
4
|
+
class Buildlist < Ivy::Target
|
5
|
+
def parameter
|
6
|
+
[
|
7
|
+
Parameter.new(:reference, false),
|
8
|
+
Parameter.new(:nested, true),
|
9
|
+
Parameter.new(:ivyfilepath, false),
|
10
|
+
Parameter.new(:root, false),
|
11
|
+
Parameter.new(:excluderoot, false),
|
12
|
+
Parameter.new(:leaf, false),
|
13
|
+
Parameter.new(:onlydirectdep, false),
|
14
|
+
Parameter.new(:delimiter, false),
|
15
|
+
Parameter.new(:excludeleaf, false),
|
16
|
+
Parameter.new(:haltonerror, false),
|
17
|
+
Parameter.new(:skipbuildwithoutivy, false),
|
18
|
+
Parameter.new(:onMissingDescriptor, false),
|
19
|
+
Parameter.new(:reverse, false),
|
20
|
+
Parameter.new(:restartFrom, false),
|
21
|
+
Parameter.new(:settingsRef, false)
|
22
|
+
]
|
23
|
+
end
|
24
|
+
|
25
|
+
protected
|
26
|
+
def execute_ivy
|
27
|
+
params[:reference] = "path-#{rand.to_s}" unless params[:reference]
|
28
|
+
call_nested :ivy_buildlist => params
|
29
|
+
end
|
30
|
+
|
31
|
+
def create_return_values
|
32
|
+
path = ant_references.find { |current| params[:reference] == current[0] }[1]
|
33
|
+
raise "Could not get path for params #{params.inspect}" unless path && path.respond_to?(:list)
|
34
|
+
path.list.map {|a| a.to_s }
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'ivy/target'
|
2
|
+
|
3
|
+
module Ivy
|
4
|
+
class Buildnumber < Ivy::Target
|
5
|
+
def parameter
|
6
|
+
[
|
7
|
+
Parameter.new(:organisation, true),
|
8
|
+
Parameter.new(:module, true),
|
9
|
+
Parameter.new(:branch, false),
|
10
|
+
Parameter.new(:revision, false),
|
11
|
+
Parameter.new(:default, false),
|
12
|
+
Parameter.new(:defaultBuildNumber, false),
|
13
|
+
Parameter.new(:revSep, false),
|
14
|
+
Parameter.new(:prefix, false),
|
15
|
+
Parameter.new(:settingsRef, false),
|
16
|
+
Parameter.new(:resolver, false)
|
17
|
+
]
|
18
|
+
end
|
19
|
+
|
20
|
+
def result_property_values
|
21
|
+
[
|
22
|
+
ResultValue.new("ivy.revision", nil),
|
23
|
+
ResultValue.new("ivy.new.revision", nil),
|
24
|
+
ResultValue.new("ivy.build.number", nil),
|
25
|
+
ResultValue.new("ivy.new.build.number", nil)
|
26
|
+
]
|
27
|
+
end
|
28
|
+
|
29
|
+
protected
|
30
|
+
def execute_ivy
|
31
|
+
call_nested :ivy_buildnumber => params
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'ivy/target'
|
2
|
+
|
3
|
+
module Ivy
|
4
|
+
class Cachepath < Ivy::Target
|
5
|
+
def parameter
|
6
|
+
[
|
7
|
+
Parameter.new(:pathid, true),
|
8
|
+
Parameter.new(:conf, false),
|
9
|
+
Parameter.new(:inline, false),
|
10
|
+
Parameter.new(:organisation, false),
|
11
|
+
Parameter.new(:module, false),
|
12
|
+
Parameter.new(:revision, false),
|
13
|
+
Parameter.new(:branch, false),
|
14
|
+
Parameter.new(:type, false),
|
15
|
+
Parameter.new(:settingsRef, false),
|
16
|
+
]
|
17
|
+
end
|
18
|
+
|
19
|
+
def create_return_values
|
20
|
+
path = ant_references.find { |current| current[0] == params[:pathid] }[1]
|
21
|
+
raise "Could not get path for confs: #{params.inspect}" unless path && path.respond_to?(:list)
|
22
|
+
path.list.map {|a| a.to_s }
|
23
|
+
end
|
24
|
+
|
25
|
+
protected
|
26
|
+
def execute_ivy
|
27
|
+
call_nested :ivy_cachepath => params
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
require 'ivy/target'
|
2
|
+
|
3
|
+
module Ivy
|
4
|
+
class Cleancache < Ivy::Target
|
5
|
+
def parameter
|
6
|
+
[
|
7
|
+
Parameter.new(:settingsRef, false)
|
8
|
+
]
|
9
|
+
end
|
10
|
+
|
11
|
+
protected
|
12
|
+
def execute_ivy
|
13
|
+
call_nested :ivy_cleancache => params
|
14
|
+
end
|
15
|
+
|
16
|
+
def create_return_values
|
17
|
+
nil
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
require 'ivy/target'
|
2
|
+
|
3
|
+
module Ivy
|
4
|
+
class Configure < Ivy::Target
|
5
|
+
def parameter
|
6
|
+
[
|
7
|
+
Parameter.new(:id, false),
|
8
|
+
Parameter.new(:file, false),
|
9
|
+
Parameter.new(:url, false),
|
10
|
+
Parameter.new(:host, false),
|
11
|
+
Parameter.new(:realm,false),
|
12
|
+
Parameter.new(:username, false),
|
13
|
+
Parameter.new(:passwd, false)
|
14
|
+
]
|
15
|
+
end
|
16
|
+
|
17
|
+
def result_property_values
|
18
|
+
property = params[:id] || 'ivy.instance'
|
19
|
+
[
|
20
|
+
ResultValue.new(/.*\.#{property}/, nil)
|
21
|
+
]
|
22
|
+
end
|
23
|
+
|
24
|
+
protected
|
25
|
+
def execute_ivy
|
26
|
+
call_nested :ivy_configure => params
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'ivy/target'
|
2
|
+
|
3
|
+
module Ivy
|
4
|
+
class Findrevision < Ivy::Target
|
5
|
+
def parameter
|
6
|
+
[
|
7
|
+
Parameter.new(:organisation, true),
|
8
|
+
Parameter.new(:module, true),
|
9
|
+
Parameter.new(:branch, false),
|
10
|
+
Parameter.new(:revision, true),
|
11
|
+
Parameter.new(:property, false),
|
12
|
+
Parameter.new(:settingsRef, false)
|
13
|
+
]
|
14
|
+
end
|
15
|
+
|
16
|
+
def result_property_values
|
17
|
+
property = params[:property] || 'ivy.revision'
|
18
|
+
[
|
19
|
+
ResultValue.new("#{property}", nil)
|
20
|
+
]
|
21
|
+
end
|
22
|
+
|
23
|
+
protected
|
24
|
+
def execute_ivy
|
25
|
+
call_nested :ivy_findrevision => params
|
26
|
+
end
|
27
|
+
|
28
|
+
def create_return_values
|
29
|
+
values = result_properties.values
|
30
|
+
raise "Could not retrieve revision for '#{params.inspect}'" if values.size > 1
|
31
|
+
values.size == 1 ? values[0] : nil
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
data/lib/ivy/info.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'ivy/target'
|
2
|
+
|
3
|
+
module Ivy
|
4
|
+
class Info < Ivy::Target
|
5
|
+
def parameter
|
6
|
+
[
|
7
|
+
Parameter.new(:file, true),
|
8
|
+
Parameter.new(:organisation, false),
|
9
|
+
Parameter.new(:module, false),
|
10
|
+
Parameter.new(:branch, false),
|
11
|
+
Parameter.new(:revision, false),
|
12
|
+
Parameter.new(:property, false),
|
13
|
+
Parameter.new(:settingsRef, false)
|
14
|
+
]
|
15
|
+
end
|
16
|
+
|
17
|
+
def result_property_values
|
18
|
+
property = params[:property] || 'ivy'
|
19
|
+
[
|
20
|
+
ResultValue.new("#{property}.organisation", nil),
|
21
|
+
ResultValue.new("#{property}.module", nil),
|
22
|
+
ResultValue.new("#{property}.branch", nil),
|
23
|
+
ResultValue.new("#{property}.revision", nil),
|
24
|
+
ResultValue.new("#{property}.status", nil),
|
25
|
+
ResultValue.new(/#{property}.extra\..*/, nil),
|
26
|
+
ResultValue.new("#{property}.configurations", Ivy::COMMA_SPLITTER),
|
27
|
+
ResultValue.new("#{property}.public.configurations", Ivy::COMMA_SPLITTER)
|
28
|
+
]
|
29
|
+
end
|
30
|
+
|
31
|
+
protected
|
32
|
+
def execute_ivy
|
33
|
+
call_nested :ivy_info => params
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|