iron_hammer 1.0.6 → 1.0.7
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/Rakefile +1 -1
- data/bin/bump +9 -0
- data/bin/ivy +45 -0
- data/lib/iron_hammer/utils/dot_net_environment.rb +12 -11
- data/lib/iron_hammer/utils/ivy_builder.rb +4 -5
- metadata +6 -3
data/Rakefile
CHANGED
data/bin/bump
ADDED
data/bin/ivy
ADDED
@@ -0,0 +1,45 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'rake'
|
5
|
+
|
6
|
+
folder = ENV['IRON_HAMMER_HOME'] || File.join(ENV['USERPROFILE'], '.IronHammer')
|
7
|
+
|
8
|
+
unless ENV['IRON_HAMMER_HOME']
|
9
|
+
puts "IRON_HAMMER_HOME environment variable not found! Generating default config on #{folder}"
|
10
|
+
puts "You'll need to download apache ivy from http://ant.apache.org/ivy/download.cgi"
|
11
|
+
puts "and copy ivy-x.x.x.jar to #{folder}\\ivy.jar"
|
12
|
+
puts "You can also edit #{folder}\\rakefile.rb and change any settings you want"
|
13
|
+
|
14
|
+
FileUtils.mkpath folder
|
15
|
+
sh "setx IRON_HAMMER_HOME \"#{folder}\""
|
16
|
+
File.open(File.join(folder, 'rakefile.rb'), 'w') do |f|
|
17
|
+
f.write <<EOF
|
18
|
+
require 'rubygems'
|
19
|
+
|
20
|
+
#VISUAL_STUDIO_PATH = ENV['VISUAL_STUDIO_PATH'] || 'C:\\Program Files\\Microsoft Visual Studio 9.0\\Common7\\IDE'
|
21
|
+
IVY_JAR = "#{ENV['IRON_HAMMER_HOME']}\\ivy.jar"
|
22
|
+
IVY_SETTINGS = "#{ENV['IRON_HAMMER_HOME']}\\ivysettings.xml"
|
23
|
+
#ORGANISATION = 'Your company'
|
24
|
+
|
25
|
+
require 'iron_hammer/tasks'
|
26
|
+
EOF
|
27
|
+
end
|
28
|
+
File.open(File.join(folder, 'ivysettings.xml'), 'w') do |f|
|
29
|
+
f.write <<EOF
|
30
|
+
<ivysettings>
|
31
|
+
<settings defaultResolver="default" />
|
32
|
+
<caches defaultCacheDir="#{folder}/Ivy/Cache"/>
|
33
|
+
<resolvers>
|
34
|
+
<filesystem name="default">
|
35
|
+
<ivy pattern="#{folder}/Ivy/Repository/[organisation]/[module]/ivys/ivy-[revision].xml"/>
|
36
|
+
<artifact pattern="#{folder}/Ivy/Repository/[organisation]/[module]/[type]s/[artifact]-[revision].[ext]"/>
|
37
|
+
</filesystem>
|
38
|
+
</resolvers>
|
39
|
+
</ivysettings>
|
40
|
+
EOF
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
sh "rake -f \"#{folder}\\rakefile.rb\" iron:ivy:#{ARGV.join ' '}"
|
45
|
+
|
@@ -3,8 +3,8 @@ require 'iron_hammer/utils/windows'
|
|
3
3
|
module IronHammer
|
4
4
|
module Utils
|
5
5
|
class DotNetEnvironment
|
6
|
-
attr_accessor :framework_path
|
7
|
-
attr_accessor :visual_studio_path
|
6
|
+
attr_accessor :framework_path
|
7
|
+
attr_accessor :visual_studio_path
|
8
8
|
|
9
9
|
def initialize params={}
|
10
10
|
@framework_path = params[:framework_path] || default_framework_path
|
@@ -14,29 +14,30 @@ module IronHammer
|
|
14
14
|
def msbuild
|
15
15
|
[@framework_path, 'msbuild.exe'].patheticalize
|
16
16
|
end
|
17
|
-
|
17
|
+
|
18
18
|
def mstest
|
19
19
|
[@visual_studio_path, 'mstest.exe'].patheticalize
|
20
20
|
end
|
21
|
-
|
21
|
+
|
22
22
|
private
|
23
23
|
def default_framework_path
|
24
24
|
[
|
25
|
-
ENV['SystemRoot'] || (IronHammer::Defaults::SYSTEM_ROOT),
|
26
|
-
'Microsoft.NET',
|
27
|
-
'Framework',
|
25
|
+
ENV['SystemRoot'] || (IronHammer::Defaults::SYSTEM_ROOT),
|
26
|
+
'Microsoft.NET',
|
27
|
+
'Framework',
|
28
28
|
'v3.5'
|
29
29
|
].patheticalize
|
30
30
|
end
|
31
|
-
|
31
|
+
|
32
32
|
def default_visual_studio_path
|
33
33
|
[
|
34
|
-
ENV['ProgramFiles'] || IronHammer::Defaults::PROGRAM_FILES,
|
35
|
-
'Microsoft Visual Studio
|
36
|
-
'Common7',
|
34
|
+
ENV['ProgramFiles'] || IronHammer::Defaults::PROGRAM_FILES,
|
35
|
+
'Microsoft Visual Studio 9.0',
|
36
|
+
'Common7',
|
37
37
|
'IDE'
|
38
38
|
].patheticalize
|
39
39
|
end
|
40
40
|
end unless defined? DotNetEnvironment
|
41
41
|
end
|
42
42
|
end
|
43
|
+
|
@@ -51,7 +51,7 @@ module IronHammer
|
|
51
51
|
"java -jar #{@config.ivy_jar}
|
52
52
|
-ivy #{ivy_file}
|
53
53
|
-settings #{@config.ivy_settings}
|
54
|
-
-retrieve Libraries/[
|
54
|
+
-retrieve Libraries/[revision]/[artifact].[ext]".gsub(/\s+/, ' ')
|
55
55
|
end
|
56
56
|
|
57
57
|
def publish ivy_file
|
@@ -74,14 +74,14 @@ module IronHammer
|
|
74
74
|
references = doc.get_elements(ProjectFile::REFERENCE_PATH)
|
75
75
|
references.each do |reference|
|
76
76
|
artifact = artifact_for reference
|
77
|
-
artifact.scan(
|
77
|
+
artifact.scan(/Libraries\/(.*)\/(.*)/) do |version, extension|
|
78
78
|
includes = reference.attribute('Include').value
|
79
79
|
includes.gsub!(/Version=(.*?)(,|$)/, "Version=#{version}\\2")
|
80
80
|
reference.add_attribute('Include', includes)
|
81
81
|
end
|
82
82
|
reference.elements['SpecificVersion'] = REXML::Element.new('SpecificVersion').add_text('false')
|
83
83
|
reference.elements['HintPath'] = REXML::Element.new('HintPath').
|
84
|
-
add_text([relative,
|
84
|
+
add_text([relative, "#{artifact.gsub(/\//, '\\')}"].flatten.patheticalize)
|
85
85
|
end
|
86
86
|
|
87
87
|
FileSystem.write! :path => @project.path, :name => @project.csproj, :content => doc.to_s
|
@@ -94,8 +94,7 @@ module IronHammer
|
|
94
94
|
private
|
95
95
|
def artifact_for reference
|
96
96
|
dependency = Dependency.from_reference reference
|
97
|
-
|
98
|
-
libraries_dir.find {|f| f.match "^#{dependency.name}-(.*)\\.(dll|exe)"}
|
97
|
+
Dir["Libraries/**/#{dependency.name}.{dll,exe}"].last
|
99
98
|
end
|
100
99
|
end
|
101
100
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iron_hammer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mozair Alves do Carmo Junior
|
@@ -67,8 +67,9 @@ description: "Iron Hammer gathers together three components to help automate the
|
|
67
67
|
email:
|
68
68
|
- macskeptic@gmail.com
|
69
69
|
- lucasmrtuner@gmail.com
|
70
|
-
executables:
|
71
|
-
|
70
|
+
executables:
|
71
|
+
- ivy
|
72
|
+
- bump
|
72
73
|
extensions: []
|
73
74
|
|
74
75
|
extra_rdoc_files:
|
@@ -77,6 +78,8 @@ files:
|
|
77
78
|
- PostInstall.txt
|
78
79
|
- README.rdoc
|
79
80
|
- Rakefile
|
81
|
+
- bin/ivy
|
82
|
+
- bin/bump
|
80
83
|
- lib/iron_hammer.rb
|
81
84
|
- lib/iron_hammer/anvil.rb
|
82
85
|
- lib/iron_hammer/default_binaries_behavior.rb
|