tetra 0.40.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.
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: []