tetra 0.40.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (92) hide show
  1. data/.gitignore +27 -0
  2. data/.rubocop.yml +14 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +28 -0
  5. data/MOTIVATION.md +27 -0
  6. data/README.md +106 -0
  7. data/Rakefile +9 -0
  8. data/SPECIAL_CASES.md +130 -0
  9. data/bin/tetra +29 -0
  10. data/integration-tests/commons.sh +55 -0
  11. data/lib/template/gitignore +2 -0
  12. data/lib/template/kit.spec +64 -0
  13. data/lib/template/kit/CONTENTS +8 -0
  14. data/lib/template/kit/jars/CONTENTS +1 -0
  15. data/lib/template/kit/m2/settings.xml +10 -0
  16. data/lib/template/output/CONTENTS +3 -0
  17. data/lib/template/package.spec +65 -0
  18. data/lib/template/src/CONTENTS +6 -0
  19. data/lib/tetra.rb +63 -0
  20. data/lib/tetra/ant_runner.rb +27 -0
  21. data/lib/tetra/archiver.rb +95 -0
  22. data/lib/tetra/commands/ant.rb +23 -0
  23. data/lib/tetra/commands/base.rb +89 -0
  24. data/lib/tetra/commands/download_maven_source_jars.rb +29 -0
  25. data/lib/tetra/commands/dry_run.rb +17 -0
  26. data/lib/tetra/commands/finish.rb +22 -0
  27. data/lib/tetra/commands/generate_all.rb +38 -0
  28. data/lib/tetra/commands/generate_kit_archive.rb +18 -0
  29. data/lib/tetra/commands/generate_kit_spec.rb +16 -0
  30. data/lib/tetra/commands/generate_package_archive.rb +19 -0
  31. data/lib/tetra/commands/generate_package_script.rb +21 -0
  32. data/lib/tetra/commands/generate_package_spec.rb +22 -0
  33. data/lib/tetra/commands/get_pom.rb +33 -0
  34. data/lib/tetra/commands/get_source.rb +30 -0
  35. data/lib/tetra/commands/init.rb +15 -0
  36. data/lib/tetra/commands/list_kit_missing_sources.rb +21 -0
  37. data/lib/tetra/commands/move_jars_to_kit.rb +18 -0
  38. data/lib/tetra/commands/mvn.rb +23 -0
  39. data/lib/tetra/git.rb +140 -0
  40. data/lib/tetra/kit_checker.rb +104 -0
  41. data/lib/tetra/kit_runner.rb +43 -0
  42. data/lib/tetra/kit_spec_adapter.rb +28 -0
  43. data/lib/tetra/logger.rb +28 -0
  44. data/lib/tetra/main.rb +102 -0
  45. data/lib/tetra/maven_runner.rb +47 -0
  46. data/lib/tetra/maven_website.rb +59 -0
  47. data/lib/tetra/package_spec_adapter.rb +59 -0
  48. data/lib/tetra/pom.rb +55 -0
  49. data/lib/tetra/pom_getter.rb +104 -0
  50. data/lib/tetra/project.rb +245 -0
  51. data/lib/tetra/script_generator.rb +57 -0
  52. data/lib/tetra/source_getter.rb +41 -0
  53. data/lib/tetra/spec_generator.rb +60 -0
  54. data/lib/tetra/template_manager.rb +33 -0
  55. data/lib/tetra/version.rb +6 -0
  56. data/lib/tetra/version_matcher.rb +90 -0
  57. data/spec/data/ant-super-simple-code/build.xml +133 -0
  58. data/spec/data/ant-super-simple-code/build/HW.class +0 -0
  59. data/spec/data/ant-super-simple-code/build/mypackage/HW.class +0 -0
  60. data/spec/data/ant-super-simple-code/dist/antsimple-20130618.jar +0 -0
  61. data/spec/data/ant-super-simple-code/lib/junit-4.11.jar +0 -0
  62. data/spec/data/ant-super-simple-code/lib/log4j-1.2.13.jar +0 -0
  63. data/spec/data/ant-super-simple-code/src/mypackage/HW.java +15 -0
  64. data/spec/data/antlr/antlr-2.7.2.jar +0 -0
  65. data/spec/data/antlr/pom.xml +6 -0
  66. data/spec/data/commons-logging/commons-logging-1.1.1.jar +0 -0
  67. data/spec/data/commons-logging/parent_pom.xml +420 -0
  68. data/spec/data/commons-logging/pom.xml +504 -0
  69. data/spec/data/nailgun/nailgun-0.7.1.jar +0 -0
  70. data/spec/data/nailgun/pom.xml +153 -0
  71. data/spec/data/struts-apps/pom.xml +228 -0
  72. data/spec/data/tomcat/pom.xml +33 -0
  73. data/spec/lib/ant_runner_spec.rb +45 -0
  74. data/spec/lib/archiver_spec.rb +106 -0
  75. data/spec/lib/git_spec.rb +105 -0
  76. data/spec/lib/kit_checker_spec.rb +119 -0
  77. data/spec/lib/maven_runner_spec.rb +68 -0
  78. data/spec/lib/maven_website_spec.rb +56 -0
  79. data/spec/lib/pom_getter_spec.rb +36 -0
  80. data/spec/lib/pom_spec.rb +69 -0
  81. data/spec/lib/project_spec.rb +254 -0
  82. data/spec/lib/script_generator_spec.rb +67 -0
  83. data/spec/lib/source_getter_spec.rb +36 -0
  84. data/spec/lib/spec_generator_spec.rb +130 -0
  85. data/spec/lib/template_manager_spec.rb +54 -0
  86. data/spec/lib/version_matcher_spec.rb +64 -0
  87. data/spec/spec_helper.rb +37 -0
  88. data/spec/support/kit_runner_examples.rb +15 -0
  89. data/tetra.gemspec +31 -0
  90. data/utils/delete_nonet_user.sh +8 -0
  91. data/utils/setup_nonet_user.sh +8 -0
  92. metadata +267 -0
@@ -0,0 +1,130 @@
1
+ # encoding: UTF-8
2
+
3
+ require "spec_helper"
4
+
5
+ describe Tetra::SpecGenerator do
6
+ before(:each) do
7
+ @project_path = File.join("spec", "data", "test-project")
8
+ Dir.mkdir(@project_path)
9
+
10
+ Tetra::Project.init(@project_path)
11
+ @project = Tetra::Project.new(@project_path)
12
+
13
+ @project.dry_run
14
+ Dir.chdir(@project_path) do
15
+ test_file = File.join("kit", "test")
16
+ File.open(test_file, "w") { |io| io.puts "kit content test file" }
17
+ end
18
+ @project.finish(false)
19
+
20
+ @spec_generator = Tetra::SpecGenerator.new(@project)
21
+ end
22
+
23
+ after(:each) do
24
+ FileUtils.rm_rf(@project_path)
25
+ end
26
+
27
+ describe "#generate_kit_spec" do
28
+ it "generates the first version" do
29
+ expect(@spec_generator.generate_kit_spec).to be_truthy
30
+
31
+ @project.from_directory do
32
+ spec_lines = File.readlines(File.join("output", "test-project-kit", "test-project-kit.spec"))
33
+ expect(spec_lines).to include("Name: test-project-kit\n")
34
+ expect(spec_lines).to include("Version: 1\n")
35
+ expect(spec_lines).to include("Source0: test-project-kit.tar.xz\n")
36
+ end
37
+ end
38
+ it "generates a second version" do
39
+ expect(@spec_generator.generate_kit_spec).to be_truthy
40
+ @project.dry_run
41
+ Dir.chdir(@project_path) do
42
+ test_file = File.join("kit", "test")
43
+ File.open(test_file, "w") { |io| io.puts "changed kit content test file" }
44
+
45
+ File.open(File.join("output", "test-project-kit", "test-project-kit.spec"), "a") do |io|
46
+ io.write("nonconflicting line")
47
+ end
48
+ end
49
+ @project.finish(false)
50
+
51
+ expect(@spec_generator.generate_kit_spec).to be_truthy
52
+
53
+ @project.from_directory do
54
+ spec_lines = File.readlines(File.join("output", "test-project-kit", "test-project-kit.spec"))
55
+ expect(spec_lines).to include("Name: test-project-kit\n")
56
+ expect(spec_lines).to include("Version: 2\n")
57
+ expect(spec_lines).to include("Source0: test-project-kit.tar.xz\n")
58
+ expect(spec_lines).to include("nonconflicting line\n")
59
+ end
60
+ end
61
+ it "generates a conflicting version" do
62
+ expect(@spec_generator.generate_kit_spec).to be_truthy
63
+ @project.dry_run
64
+ Dir.chdir(@project_path) do
65
+ test_file = File.join("kit", "test")
66
+ File.open(test_file, "w") { |io| io.puts "changed kit content test file" }
67
+
68
+ spec_path = File.join("output", "test-project-kit", "test-project-kit.spec")
69
+ spec_contents = File.read spec_path
70
+
71
+ spec_contents.gsub!(/^Version:.*$/, "CONFLICTING!")
72
+
73
+ File.open(spec_path, "w+") do |io|
74
+ io.write(spec_contents)
75
+ end
76
+ end
77
+ @project.finish(false)
78
+
79
+ expect(@spec_generator.generate_kit_spec).to be_truthy
80
+
81
+ @project.from_directory do
82
+ spec_lines = File.readlines(File.join("output", "test-project-kit", "test-project-kit.spec"))
83
+ expect(spec_lines).to include("Name: test-project-kit\n")
84
+ expect(spec_lines).to include("Source0: test-project-kit.tar.xz\n")
85
+ expect(spec_lines).to include("<<<<<<< newly generated\n")
86
+ expect(spec_lines).to include("Version: 2\n")
87
+ expect(spec_lines).to include("=======\n")
88
+ expect(spec_lines).to include("CONFLICTING!\n")
89
+ expect(spec_lines).to include(">>>>>>> user edited\n")
90
+ end
91
+ end
92
+ end
93
+
94
+ describe "#generate_package_spec" do
95
+ it "generates the first version" do
96
+
97
+ @project.from_directory do
98
+ FileUtils.mkdir_p File.join("src", "test", "out")
99
+ (1..5).each do |i|
100
+ `touch src/test/test#{i}.java`
101
+ end
102
+ @project.dry_run
103
+
104
+ (1..5).each do |i|
105
+ `touch src/test/test#{i}.class`
106
+ end
107
+
108
+ (1..5).each do |i|
109
+ `touch src/test/out/test#{i}.jar`
110
+ end
111
+
112
+ @project.finish(false)
113
+ end
114
+
115
+ FileUtils.copy(File.join("spec", "data", "nailgun", "pom.xml"), @project_path)
116
+ @spec_generator.generate_package_spec "test", File.join(@project_path, "pom.xml"), "*.jar"
117
+
118
+ @project.from_directory do
119
+ spec_lines = File.readlines(File.join("output", "test", "test.spec"))
120
+ expect(spec_lines).to include("Name: test\n")
121
+ expect(spec_lines).to include("License: The Apache Software License, Version 2.0\n")
122
+ expect(spec_lines).to include("Summary: Nailgun is a client, protocol, and server for running Java\n")
123
+ expect(spec_lines).to include("Url: http://martiansoftware.com/nailgun\n")
124
+ expect(spec_lines).to include("BuildRequires: #{@project.name}-kit >= 2\n")
125
+ expect(spec_lines).to include("Provides: mvn(com.martiansoftware:nailgun-all) == 0.9.1\n")
126
+ expect(spec_lines).to include("cp -a out/test3.jar %{buildroot}%{_javadir}/test3.jar\n")
127
+ end
128
+ end
129
+ end
130
+ end
@@ -0,0 +1,54 @@
1
+ # encoding: UTF-8
2
+
3
+ require "spec_helper"
4
+
5
+ describe Tetra::TemplateManager do
6
+ let(:template_manager) { Tetra::TemplateManager.new }
7
+
8
+ describe "#template_path" do
9
+ it "returns the pathname where all templates are stored" do
10
+ relative_path = template_manager.template_path
11
+ expected_path = File.expand_path(File.join(File.dirname(__FILE__), "..", "..", "lib", "template"))
12
+ expect(File.expand_path(relative_path)).to eq expected_path
13
+ end
14
+ end
15
+
16
+ describe "#copy" do
17
+ it "copies a file from template to another dir" do
18
+ destination = Tempfile.new("TemplateManager spec")
19
+ destination_path = destination.path
20
+ destination.unlink
21
+
22
+ template_manager.copy(File.join("src", "CONTENTS"), destination_path)
23
+
24
+ File.exist?(destination_path)
25
+ end
26
+ end
27
+
28
+ describe "#generate" do
29
+ it "compiles a file from a template and a value objects file" do
30
+ template_path = File.join(template_manager.template_path, "test.erb")
31
+ File.open(template_path, "w") { |io| io.puts "Hello <%= world_property %>" }
32
+
33
+ destination = Tempfile.new("TemplateManager spec")
34
+ destination_path = destination.path
35
+ destination.unlink
36
+
37
+ # binding test class
38
+ class WorldClass
39
+ def world_property
40
+ "World!"
41
+ end
42
+
43
+ def public_binding
44
+ binding
45
+ end
46
+ end
47
+
48
+ template_manager.generate("test.erb", WorldClass.new.public_binding, destination_path)
49
+ File.unlink(template_path)
50
+
51
+ expect(File.read(destination_path)).to eq "Hello World!\n"
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,64 @@
1
+ # encoding: UTF-8
2
+
3
+ require "spec_helper"
4
+
5
+ describe Tetra::VersionMatcher do
6
+ let(:version_matcher) { Tetra::VersionMatcher.new }
7
+
8
+ describe "#split_version" do
9
+ it "splits full names into names and version numbers" do
10
+ expect(version_matcher.split_version("moio-3.2beta1")).to eq(["moio", "3.2beta1"])
11
+ expect(version_matcher.split_version("3.2beta1")).to eq(["", "3.2beta1"])
12
+ expect(version_matcher.split_version("v3.2beta1")).to eq(["v", "3.2beta1"])
13
+ end
14
+ end
15
+
16
+ describe "#chunk_distance" do
17
+ it "computes chunk distances" do
18
+ expect(version_matcher.chunk_distance(nil, "1")).to eq(1)
19
+ expect(version_matcher.chunk_distance("alpha", nil)).to eq(5)
20
+
21
+ expect(version_matcher.chunk_distance("1", "1")).to eq(0)
22
+ expect(version_matcher.chunk_distance("1", "9")).to eq(8)
23
+ expect(version_matcher.chunk_distance("1", "999")).to eq(99)
24
+
25
+ expect(version_matcher.chunk_distance("snap", "SNAP")).to eq(0)
26
+ expect(version_matcher.chunk_distance("snap", "snippete")).to eq(5)
27
+ expect(version_matcher.chunk_distance("snap", "l" * 999)).to eq(99)
28
+
29
+ expect(version_matcher.chunk_distance("1", "SNAP")).to eq(4)
30
+
31
+ expect(version_matcher.chunk_distance("0", "10")).to eq(10)
32
+ expect(version_matcher.chunk_distance("0", "9")).to eq(9)
33
+ end
34
+ end
35
+
36
+ describe "#best_match" do
37
+ it "finds the best match" do
38
+ my_version = "1.0"
39
+ available_versions = ["1.0", "1", "2.0", "1.0.1", "4.5.6.7.8"]
40
+ expect(version_matcher.best_match(my_version, available_versions)).to eq("1.0")
41
+
42
+ available_versions = ["3.0", "2.0", "1.0.1"]
43
+ expect(version_matcher.best_match(my_version, available_versions)).to eq("1.0.1")
44
+
45
+ available_versions = ["1.snap", "2.0", "4.0.1"]
46
+ expect(version_matcher.best_match(my_version, available_versions)).to eq("1.snap")
47
+
48
+ available_versions = ["1.10", "1.9", "2.0", "3.0.1"]
49
+ expect(version_matcher.best_match(my_version, available_versions)).to eq("1.9")
50
+
51
+ my_version = "1.snap"
52
+ available_versions = ["1.snap", "1"]
53
+ expect(version_matcher.best_match(my_version, available_versions)).to eq("1.snap")
54
+
55
+ my_version = "1.very-very_very_longish"
56
+ available_versions = ["1.snap", "1"]
57
+ expect(version_matcher.best_match(my_version, available_versions)).to eq("1.snap")
58
+
59
+ my_version = "1.snap"
60
+ available_versions = []
61
+ expect(version_matcher.best_match(my_version, available_versions)).to be_nil
62
+ end
63
+ end
64
+ end
@@ -0,0 +1,37 @@
1
+ # encoding: UTF-8
2
+
3
+ require "tetra"
4
+ Dir["./spec/support/**/*.rb"].sort.each { |f| require f }
5
+
6
+ module Tetra
7
+ # custom mock methods
8
+ module Mockers
9
+ # creates a minimal tetra project
10
+ def create_mock_project
11
+ @project_path = File.join("spec", "data", "test-project")
12
+ Dir.mkdir(@project_path)
13
+
14
+ Tetra::Project.init(@project_path)
15
+ @project = Tetra::Project.new(@project_path)
16
+ end
17
+
18
+ # deletes the mock project and all contents
19
+ def delete_mock_project
20
+ FileUtils.rm_rf(@project_path)
21
+ end
22
+
23
+ # creates an executable in kit that will print its parameters
24
+ # in a test_out file for checking. Returns mocked executable
25
+ # full path
26
+ def create_mock_executable(executable_name)
27
+ Dir.chdir(@project_path) do
28
+ bin_dir = File.join("kit", executable_name, "bin")
29
+ FileUtils.mkdir_p(bin_dir)
30
+ executable_path = File.join(bin_dir, executable_name)
31
+ File.open(executable_path, "w") { |io| io.puts "echo $0 $*>test_out" }
32
+ File.chmod(0777, executable_path)
33
+ executable_path
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,15 @@
1
+ # encoding: UTF-8
2
+
3
+ shared_examples_for Tetra::KitRunner do
4
+ include Tetra::Mockers
5
+
6
+ describe "#find_executable" do
7
+ it "finds an executable in kit" do
8
+ executable_path = create_mock_executable("any")
9
+ expect(@kit_runner.find_executable("any")).to eq executable_path
10
+ end
11
+ it "doesn't find a Maven executable in kit" do
12
+ expect(@kit_runner.find_executable("any")).to be_nil
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,31 @@
1
+ # encoding: UTF-8
2
+ $LOAD_PATH.push File.expand_path("../lib", __FILE__)
3
+ require "tetra/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "tetra"
7
+ s.version = Tetra::VERSION
8
+ s.authors = ["Silvio Moioli"]
9
+ s.email = ["smoioli@suse.de"]
10
+ s.homepage = "https://github.com/SilvioMoioli/tetra"
11
+ s.summary = "A tool to package Java projects"
12
+ s.description = "Tetra simplifies the creation of spec files and archives to distribute Java projects in RPM format"
13
+ s.license = "MIT"
14
+
15
+ s.rubyforge_project = "tetra"
16
+
17
+ s.files = `git ls-files`.split("\n")
18
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
19
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
20
+ s.require_paths = ["lib"]
21
+
22
+ s.add_development_dependency "rake"
23
+ s.add_development_dependency "rspec"
24
+
25
+ s.add_runtime_dependency "clamp"
26
+ s.add_runtime_dependency "rubyzip", ">= 1.0"
27
+ s.add_runtime_dependency "rest-client"
28
+ s.add_runtime_dependency "json"
29
+ s.add_runtime_dependency "text"
30
+ s.add_runtime_dependency "nokogiri"
31
+ end
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+
3
+ su
4
+ useradd nonet
5
+ passwd nonet
6
+
7
+ iptables -A OUTPUT -m owner --uid-owner nonet -j DROP
8
+
@@ -0,0 +1,8 @@
1
+ #!/bin/bash
2
+
3
+ su
4
+ useradd nonet
5
+ passwd nonet
6
+
7
+ iptables -A OUTPUT -m owner --uid-owner nonet -j DROP
8
+
metadata ADDED
@@ -0,0 +1,267 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tetra
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.40.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Silvio Moioli
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-07-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :development
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :development
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: clamp
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rubyzip
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '1.0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '1.0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rest-client
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :runtime
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ - !ruby/object:Gem::Dependency
95
+ name: json
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: text
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: nokogiri
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ description: Tetra simplifies the creation of spec files and archives to distribute
143
+ Java projects in RPM format
144
+ email:
145
+ - smoioli@suse.de
146
+ executables:
147
+ - tetra
148
+ extensions: []
149
+ extra_rdoc_files: []
150
+ files:
151
+ - .gitignore
152
+ - .rubocop.yml
153
+ - Gemfile
154
+ - LICENSE
155
+ - MOTIVATION.md
156
+ - README.md
157
+ - Rakefile
158
+ - SPECIAL_CASES.md
159
+ - bin/tetra
160
+ - integration-tests/commons.sh
161
+ - lib/template/gitignore
162
+ - lib/template/kit.spec
163
+ - lib/template/kit/CONTENTS
164
+ - lib/template/kit/jars/CONTENTS
165
+ - lib/template/kit/m2/settings.xml
166
+ - lib/template/output/CONTENTS
167
+ - lib/template/package.spec
168
+ - lib/template/src/CONTENTS
169
+ - lib/tetra.rb
170
+ - lib/tetra/ant_runner.rb
171
+ - lib/tetra/archiver.rb
172
+ - lib/tetra/commands/ant.rb
173
+ - lib/tetra/commands/base.rb
174
+ - lib/tetra/commands/download_maven_source_jars.rb
175
+ - lib/tetra/commands/dry_run.rb
176
+ - lib/tetra/commands/finish.rb
177
+ - lib/tetra/commands/generate_all.rb
178
+ - lib/tetra/commands/generate_kit_archive.rb
179
+ - lib/tetra/commands/generate_kit_spec.rb
180
+ - lib/tetra/commands/generate_package_archive.rb
181
+ - lib/tetra/commands/generate_package_script.rb
182
+ - lib/tetra/commands/generate_package_spec.rb
183
+ - lib/tetra/commands/get_pom.rb
184
+ - lib/tetra/commands/get_source.rb
185
+ - lib/tetra/commands/init.rb
186
+ - lib/tetra/commands/list_kit_missing_sources.rb
187
+ - lib/tetra/commands/move_jars_to_kit.rb
188
+ - lib/tetra/commands/mvn.rb
189
+ - lib/tetra/git.rb
190
+ - lib/tetra/kit_checker.rb
191
+ - lib/tetra/kit_runner.rb
192
+ - lib/tetra/kit_spec_adapter.rb
193
+ - lib/tetra/logger.rb
194
+ - lib/tetra/main.rb
195
+ - lib/tetra/maven_runner.rb
196
+ - lib/tetra/maven_website.rb
197
+ - lib/tetra/package_spec_adapter.rb
198
+ - lib/tetra/pom.rb
199
+ - lib/tetra/pom_getter.rb
200
+ - lib/tetra/project.rb
201
+ - lib/tetra/script_generator.rb
202
+ - lib/tetra/source_getter.rb
203
+ - lib/tetra/spec_generator.rb
204
+ - lib/tetra/template_manager.rb
205
+ - lib/tetra/version.rb
206
+ - lib/tetra/version_matcher.rb
207
+ - spec/data/ant-super-simple-code/build.xml
208
+ - spec/data/ant-super-simple-code/build/HW.class
209
+ - spec/data/ant-super-simple-code/build/mypackage/HW.class
210
+ - spec/data/ant-super-simple-code/dist/antsimple-20130618.jar
211
+ - spec/data/ant-super-simple-code/lib/junit-4.11.jar
212
+ - spec/data/ant-super-simple-code/lib/log4j-1.2.13.jar
213
+ - spec/data/ant-super-simple-code/src/mypackage/HW.java
214
+ - spec/data/antlr/antlr-2.7.2.jar
215
+ - spec/data/antlr/pom.xml
216
+ - spec/data/commons-logging/commons-logging-1.1.1.jar
217
+ - spec/data/commons-logging/parent_pom.xml
218
+ - spec/data/commons-logging/pom.xml
219
+ - spec/data/nailgun/nailgun-0.7.1.jar
220
+ - spec/data/nailgun/pom.xml
221
+ - spec/data/struts-apps/pom.xml
222
+ - spec/data/tomcat/pom.xml
223
+ - spec/lib/ant_runner_spec.rb
224
+ - spec/lib/archiver_spec.rb
225
+ - spec/lib/git_spec.rb
226
+ - spec/lib/kit_checker_spec.rb
227
+ - spec/lib/maven_runner_spec.rb
228
+ - spec/lib/maven_website_spec.rb
229
+ - spec/lib/pom_getter_spec.rb
230
+ - spec/lib/pom_spec.rb
231
+ - spec/lib/project_spec.rb
232
+ - spec/lib/script_generator_spec.rb
233
+ - spec/lib/source_getter_spec.rb
234
+ - spec/lib/spec_generator_spec.rb
235
+ - spec/lib/template_manager_spec.rb
236
+ - spec/lib/version_matcher_spec.rb
237
+ - spec/spec_helper.rb
238
+ - spec/support/kit_runner_examples.rb
239
+ - tetra.gemspec
240
+ - utils/delete_nonet_user.sh
241
+ - utils/setup_nonet_user.sh
242
+ homepage: https://github.com/SilvioMoioli/tetra
243
+ licenses:
244
+ - MIT
245
+ post_install_message:
246
+ rdoc_options: []
247
+ require_paths:
248
+ - lib
249
+ required_ruby_version: !ruby/object:Gem::Requirement
250
+ none: false
251
+ requirements:
252
+ - - ! '>='
253
+ - !ruby/object:Gem::Version
254
+ version: '0'
255
+ required_rubygems_version: !ruby/object:Gem::Requirement
256
+ none: false
257
+ requirements:
258
+ - - ! '>='
259
+ - !ruby/object:Gem::Version
260
+ version: '0'
261
+ requirements: []
262
+ rubyforge_project: tetra
263
+ rubygems_version: 1.8.23
264
+ signing_key:
265
+ specification_version: 3
266
+ summary: A tool to package Java projects
267
+ test_files: []