kpm 0.11.0 → 0.11.2
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.
- checksums.yaml +4 -4
- data/.gitignore +4 -2
- data/README.adoc +4 -19
- data/docker/docker-compose.ci.mysql.yml +2 -2
- data/kpm.gemspec +4 -4
- data/lib/kpm/diagnostic_file.rb +3 -7
- data/lib/kpm/installer.rb +2 -17
- data/lib/kpm/kaui_artifact.rb +2 -3
- data/lib/kpm/killbill_plugin_artifact.rb +2 -2
- data/lib/kpm/killbill_server_artifact.rb +2 -3
- data/lib/kpm/nexus_helper/nexus_api_calls_v2.rb +1 -1
- data/lib/kpm/plugins_directory.yml +31 -2
- data/lib/kpm/tasks.rb +49 -33
- data/lib/kpm/version.rb +1 -1
- data/lib/kpm.rb +0 -1
- data/packaging/Gemfile +1 -4
- data/packaging/kpm.sh +1 -1
- data/pom.xml +11 -6
- data/tasks/package.rake +67 -28
- metadata +47 -18
- data/lib/kpm/tomcat_manager.rb +0 -95
- data/release.sh +0 -60
- data/spec/kpm/remote/tomcat_manager_spec.rb +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 52403662d712a2a4e5d5f4858f9f5fdec00cfae193fb0fa584ac9e4ad0915b88
|
4
|
+
data.tar.gz: f44f9d18991344583ca2cf6edcea3973930396d8ed72781c6d178afa07c42e0f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3f1197e9c21b9ff52f6938a329af118434243e8fceb8145826139e00598f68c1ae9567347cc3d2e462ad2fe6d2e26bc116037b259698656207a61366eda24e28
|
7
|
+
data.tar.gz: 1b48ddb9aa45a443c2d5a2af4ea8b38b2b3e8dfb66dbffe44ab5b8249dedad13a1cb68398f3f0ed2cef668b7731cc1bfcbf6029ea1bf2b700def47a6e7c2fa7b
|
data/.gitignore
CHANGED
@@ -2,10 +2,12 @@ Gemfile.lock
|
|
2
2
|
pkg
|
3
3
|
packaging/tmp
|
4
4
|
packaging/vendor
|
5
|
-
kpm-*-linux-x86.tar.gz
|
6
5
|
kpm-*-linux-x86_64.tar.gz
|
6
|
+
kpm-*-osx-arm64.tar.gz
|
7
7
|
kpm-*-osx.tar.gz
|
8
|
-
|
8
|
+
kpm-*-noarch.tar.gz
|
9
|
+
portable-ruby-*.tar.gz
|
10
|
+
jruby-dist-*-bin.tar.gz
|
9
11
|
*.asc
|
10
12
|
.rakeTasks
|
11
13
|
pom.xml.versionsBackup
|
data/README.adoc
CHANGED
@@ -26,10 +26,13 @@ Note that this installation method assumes `/bin/bash` to be available on your s
|
|
26
26
|
=== Through Rubygems
|
27
27
|
image:https://img.shields.io/gem/v/kpm?color=blue&label=kpm[kpm]
|
28
28
|
|
29
|
-
On Windows, you can install KPM via https://rubygems.org/gems/kpm[RubyGems.org]. For this, you need to first install Ruby.
|
29
|
+
On Windows, you can install KPM via https://rubygems.org/gems/kpm[RubyGems.org]. For this, you need to first install Ruby 2.x.x. We recommend installing Ruby 2.7.7.
|
30
|
+
|
31
|
+
Ruby can be installed via https://rubyinstaller.org/[RubyInstaller]. Once installed, you can run the following command to install KPM:
|
30
32
|
[source,bash]
|
31
33
|
gem install kpm
|
32
34
|
|
35
|
+
Note: KPM is not tested with Ruby 3.x.x or later versions.
|
33
36
|
|
34
37
|
|
35
38
|
[[kpm-commands]]
|
@@ -38,24 +41,6 @@ gem install kpm
|
|
38
41
|
[[kill-bill-installation]]
|
39
42
|
=== Kill Bill installation
|
40
43
|
|
41
|
-
[[kpm-install]]
|
42
|
-
==== kpm install
|
43
|
-
|
44
|
-
`kpm install` (with no argument) will setup https://github.com/killbill/killbill[Kill Bill] and https://github.com/killbill/killbill-admin-ui-standalone[Kaui] in your current directory, including:
|
45
|
-
|
46
|
-
* http://tomcat.apache.org/[Tomcat] (open-source Java web server)
|
47
|
-
* The Kill Bill application (war) is installed in the `./webapps` directory
|
48
|
-
* The Kill Bill UI (Kaui war) is installed in the `./webapps` directory
|
49
|
-
* Default OSGI bundles are installed in the `/var/tmp/bundles` directory
|
50
|
-
|
51
|
-
To start Kill Bill, simply run
|
52
|
-
|
53
|
-
....
|
54
|
-
./bin/catalina.sh run
|
55
|
-
....
|
56
|
-
|
57
|
-
You can then verify Kill Bill is running by going to http://127.0.0.1:8080/kaui.
|
58
|
-
|
59
44
|
[[kpm-install-using-a-kpm.yml-file]]
|
60
45
|
==== kpm install Using A `kpm.yml` File
|
61
46
|
|
@@ -3,7 +3,7 @@ version: '3.8'
|
|
3
3
|
services:
|
4
4
|
killbill:
|
5
5
|
network_mode: host
|
6
|
-
image: killbill/killbill:0.
|
6
|
+
image: killbill/killbill:0.24.0
|
7
7
|
environment:
|
8
8
|
- KILLBILL_CATALOG_URI=SpyCarAdvanced.xml
|
9
9
|
- KILLBILL_DAO_URL=jdbc:mysql://0.0.0.0:3306/killbill
|
@@ -16,6 +16,6 @@ services:
|
|
16
16
|
- db
|
17
17
|
db:
|
18
18
|
network_mode: host
|
19
|
-
image: killbill/mariadb:0.
|
19
|
+
image: killbill/mariadb:0.24
|
20
20
|
environment:
|
21
21
|
- MYSQL_ROOT_PASSWORD=root
|
data/kpm.gemspec
CHANGED
@@ -41,10 +41,10 @@ Gem::Specification.new do |s|
|
|
41
41
|
|
42
42
|
s.rdoc_options << '--exclude' << '.'
|
43
43
|
|
44
|
-
s.add_dependency 'highline', '
|
45
|
-
s.add_dependency 'killbill-client'
|
46
|
-
s.add_dependency 'rubyzip', '
|
47
|
-
s.add_dependency 'thor', '
|
44
|
+
s.add_dependency 'highline', '>= 1.6.21', '< 2.1.0'
|
45
|
+
s.add_dependency 'killbill-client'
|
46
|
+
s.add_dependency 'rubyzip', '>= 1.3', '< 2.4'
|
47
|
+
s.add_dependency 'thor', '>= 0.19.1', '< 1.3.0'
|
48
48
|
|
49
49
|
s.add_development_dependency 'gem-release', '~> 2.2'
|
50
50
|
s.add_development_dependency 'rake', '~> 13.0'
|
data/lib/kpm/diagnostic_file.rb
CHANGED
@@ -23,15 +23,11 @@ module KPM
|
|
23
23
|
ZIP_LOG_FILE = 'logs.zip'
|
24
24
|
|
25
25
|
def initialize(config_file = nil, killbill_api_credentials = nil, killbill_credentials = nil, killbill_url = nil,
|
26
|
-
|
26
|
+
kaui_web_path = nil,
|
27
27
|
killbill_web_path = nil, bundles_dir = nil, logger = nil)
|
28
28
|
@killbill_api_credentials = killbill_api_credentials
|
29
29
|
@killbill_credentials = killbill_credentials
|
30
30
|
@killbill_url = killbill_url
|
31
|
-
@database_name = database_name
|
32
|
-
@database_credentials = database_credentials
|
33
|
-
@database_host = database_host
|
34
|
-
@database_port = database_port
|
35
31
|
@config_file = config_file
|
36
32
|
@kaui_web_path = kaui_web_path
|
37
33
|
@killbill_web_path = killbill_web_path
|
@@ -109,8 +105,8 @@ module KPM
|
|
109
105
|
@logger.level = Logger::WARN
|
110
106
|
|
111
107
|
account = KPM::Account.new(@config_file, @killbill_api_credentials, @killbill_credentials,
|
112
|
-
@killbill_url,
|
113
|
-
|
108
|
+
@killbill_url, nil,
|
109
|
+
nil, nil, nil, nil, @logger)
|
114
110
|
export_file = account.export_data(account_id)
|
115
111
|
|
116
112
|
final = TMP_DIR + File::Separator + ACCOUNT_FILE
|
data/lib/kpm/installer.rb
CHANGED
@@ -87,9 +87,9 @@ module KPM
|
|
87
87
|
end
|
88
88
|
bundles_dir ||= DEFAULT_BUNDLES_DIR
|
89
89
|
|
90
|
-
help = nil
|
91
90
|
unless @config.nil?
|
92
|
-
|
91
|
+
raise ArgumentError, "Aborting installation, no webapp_path specified in config: #{@config}" if @config['webapp_path'].nil?
|
92
|
+
|
93
93
|
install_killbill_server(@config['group_id'], @config['artifact_id'], @config['packaging'], @config['classifier'], @config['version'], @config['webapp_path'], bundles_dir, force_download, verify_sha1)
|
94
94
|
install_plugins(bundles_dir, @config['version'], force_download, verify_sha1)
|
95
95
|
install_default_bundles(bundles_dir, @config['default_bundles_version'], @config['version'], force_download, verify_sha1) unless @config['default_bundles'] == false
|
@@ -105,26 +105,11 @@ module KPM
|
|
105
105
|
install_kaui(@kaui_config['group_id'], @kaui_config['artifact_id'], @kaui_config['packaging'], @kaui_config['classifier'], @kaui_config['version'], @kaui_config['webapp_path'], bundles_dir, force_download, verify_sha1)
|
106
106
|
end
|
107
107
|
|
108
|
-
@trace_logger.add('help', nil, help)
|
109
108
|
@trace_logger.to_json
|
110
109
|
end
|
111
110
|
|
112
111
|
private
|
113
112
|
|
114
|
-
def install_tomcat(dir = Dir.pwd)
|
115
|
-
# Download and unpack Tomcat
|
116
|
-
manager = KPM::TomcatManager.new(dir, @logger)
|
117
|
-
manager.download
|
118
|
-
|
119
|
-
# Update main config
|
120
|
-
root_war_path = manager.setup
|
121
|
-
@config['webapp_path'] = root_war_path
|
122
|
-
@kaui_config['webapp_path'] = Pathname.new(File.dirname(root_war_path)).join('kaui.war').to_s unless @kaui_config.nil?
|
123
|
-
|
124
|
-
# Help message
|
125
|
-
manager.help
|
126
|
-
end
|
127
|
-
|
128
113
|
def install_plugins(bundles_dir, raw_kb_version, force_download, verify_sha1)
|
129
114
|
install_java_plugins(bundles_dir, raw_kb_version, force_download, verify_sha1)
|
130
115
|
end
|
data/lib/kpm/kaui_artifact.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rexml/document'
|
4
|
-
require 'set'
|
5
4
|
|
6
5
|
module KPM
|
7
6
|
class KauiArtifact < BaseArtifact
|
@@ -11,9 +10,9 @@ module KPM
|
|
11
10
|
|
12
11
|
coordinates = KPM::Coordinates.build_coordinates(coordinate_map)
|
13
12
|
response = REXML::Document.new nexus_remote(overrides, ssl_verify).search_for_artifacts(coordinates)
|
14
|
-
versions =
|
13
|
+
versions = []
|
15
14
|
response.elements.each('searchNGResponse/data/artifact/version') { |element| versions << element.text }
|
16
|
-
versions
|
15
|
+
versions.sort!.uniq
|
17
16
|
end
|
18
17
|
end
|
19
18
|
end
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rexml/document'
|
4
|
-
require 'set'
|
5
4
|
|
6
5
|
module KPM
|
7
6
|
class KillbillPluginArtifact < BaseArtifact
|
@@ -20,8 +19,9 @@ module KPM
|
|
20
19
|
response = REXML::Document.new nexus.search_for_artifacts(type_and_group_id[1])
|
21
20
|
response.elements.each('searchNGResponse/data/artifact') do |element|
|
22
21
|
artifact_id = element.elements['artifactId'].text
|
23
|
-
plugins[type_and_group_id[0]][artifact_id] ||=
|
22
|
+
plugins[type_and_group_id[0]][artifact_id] ||= []
|
24
23
|
plugins[type_and_group_id[0]][artifact_id] << element.elements['version'].text
|
24
|
+
plugins[type_and_group_id[0]][artifact_id].sort!.uniq!
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rexml/document'
|
4
|
-
require 'set'
|
5
4
|
|
6
5
|
module KPM
|
7
6
|
class KillbillServerArtifact < BaseArtifact
|
@@ -10,9 +9,9 @@ module KPM
|
|
10
9
|
coordinate_map = { group_id: KPM::BaseArtifact::KILLBILL_GROUP_ID, artifact_id: artifact_id, packaging: packaging, classifier: classifier }
|
11
10
|
coordinates = KPM::Coordinates.build_coordinates(coordinate_map)
|
12
11
|
response = REXML::Document.new nexus_remote(overrides, ssl_verify).search_for_artifacts(coordinates)
|
13
|
-
versions =
|
12
|
+
versions = []
|
14
13
|
response.elements.each('searchNGResponse/data/artifact/version') { |element| versions << element.text }
|
15
|
-
versions
|
14
|
+
versions.sort!.uniq
|
16
15
|
end
|
17
16
|
|
18
17
|
def info(version = 'LATEST', sha1_file = nil, force_download = false, verify_sha1 = true, overrides = {}, ssl_verify = true)
|
@@ -8,18 +8,22 @@
|
|
8
8
|
:versions:
|
9
9
|
:0.18: 0.5.26
|
10
10
|
:0.20: 0.7.0
|
11
|
+
:0.22: 0.9.0
|
12
|
+
:0.24: 0.10.0
|
11
13
|
:analytics:
|
12
14
|
:type: :java
|
13
15
|
:versions:
|
14
16
|
:0.18: 4.2.5
|
15
17
|
:0.20: 6.0.1
|
16
|
-
:0.22: 7.2.
|
18
|
+
:0.22: 7.2.7
|
19
|
+
:0.24: 8.1.1
|
17
20
|
:avatax:
|
18
21
|
:type: :java
|
19
22
|
:versions:
|
20
23
|
:0.18: 0.4.1
|
21
24
|
:0.20: 0.6.1
|
22
25
|
:0.22: 0.8.4
|
26
|
+
:0.24: 0.9.0
|
23
27
|
:cybersource:
|
24
28
|
:type: :ruby
|
25
29
|
:versions:
|
@@ -28,6 +32,7 @@
|
|
28
32
|
:type: :java
|
29
33
|
:versions:
|
30
34
|
:0.22: 0.0.2
|
35
|
+
:0.24: 0.1.0
|
31
36
|
:dwolla:
|
32
37
|
:type: :java
|
33
38
|
:versions:
|
@@ -39,6 +44,7 @@
|
|
39
44
|
:0.18: 0.3.1
|
40
45
|
:0.20: 0.5.1
|
41
46
|
:0.22: 0.7.2
|
47
|
+
:0.24: 0.8.0
|
42
48
|
:forte:
|
43
49
|
:type: :java
|
44
50
|
:versions:
|
@@ -73,6 +79,7 @@
|
|
73
79
|
:artifact_id: payment-test-plugin
|
74
80
|
:versions:
|
75
81
|
:0.22: 7.0.4
|
82
|
+
:0.24: 8.0.0
|
76
83
|
:securenet:
|
77
84
|
:type: :ruby
|
78
85
|
:versions:
|
@@ -80,4 +87,26 @@
|
|
80
87
|
:stripe:
|
81
88
|
:type: :java
|
82
89
|
:versions:
|
83
|
-
:0.22: 7.3.
|
90
|
+
:0.22: 7.3.3
|
91
|
+
:0.24: 8.0.2
|
92
|
+
:braintree:
|
93
|
+
:type: :java
|
94
|
+
:versions:
|
95
|
+
:0.24: 1.0.0
|
96
|
+
:catalog-test:
|
97
|
+
:type: :java
|
98
|
+
:versions:
|
99
|
+
:0.24: 0.5.1
|
100
|
+
:gocardless:
|
101
|
+
:type: :java
|
102
|
+
:versions:
|
103
|
+
:0.24: 1.0.1
|
104
|
+
:qualpay:
|
105
|
+
:type: :java
|
106
|
+
:versions:
|
107
|
+
:0.22: 0.0.1
|
108
|
+
:0.24: 1.0.0
|
109
|
+
:invgrp:
|
110
|
+
:type: :java
|
111
|
+
:versions:
|
112
|
+
:0.24: 1.0.7
|
data/lib/kpm/tasks.rb
CHANGED
@@ -17,16 +17,6 @@ module KPM
|
|
17
17
|
say "KPM version #{KPM::VERSION}"
|
18
18
|
end
|
19
19
|
|
20
|
-
class_option :overrides,
|
21
|
-
type: :hash,
|
22
|
-
default: nil,
|
23
|
-
desc: "A hashed list of overrides. Available options are 'url', 'repository', 'username', and 'password'."
|
24
|
-
|
25
|
-
class_option :ssl_verify,
|
26
|
-
type: :boolean,
|
27
|
-
default: true,
|
28
|
-
desc: 'Set to false to disable SSL Verification.'
|
29
|
-
|
30
20
|
method_option :force_download,
|
31
21
|
type: :boolean,
|
32
22
|
default: false,
|
@@ -104,6 +94,14 @@ module KPM
|
|
104
94
|
type: :boolean,
|
105
95
|
default: true,
|
106
96
|
desc: 'Validate sha1 sum'
|
97
|
+
method_option :overrides,
|
98
|
+
type: :hash,
|
99
|
+
default: nil,
|
100
|
+
desc: "A hashed list of overrides. Available options are 'url', 'repository', 'username', and 'password'."
|
101
|
+
method_option :ssl_verify,
|
102
|
+
type: :boolean,
|
103
|
+
default: true,
|
104
|
+
desc: 'Set to false to disable SSL Verification.'
|
107
105
|
desc 'pull_kb_server_war <version>', 'Pulls Kill Bill server war and places it on your machine. If version was not specified it uses the latest released version.'
|
108
106
|
def pull_kb_server_war(version = 'LATEST')
|
109
107
|
installer = BaseInstaller.new(logger,
|
@@ -121,6 +119,14 @@ module KPM
|
|
121
119
|
say "Artifact has been retrieved and can be found at path: #{response[:file_path]}", :green
|
122
120
|
end
|
123
121
|
|
122
|
+
method_option :overrides,
|
123
|
+
type: :hash,
|
124
|
+
default: nil,
|
125
|
+
desc: "A hashed list of overrides. Available options are 'url', 'repository', 'username', and 'password'."
|
126
|
+
method_option :ssl_verify,
|
127
|
+
type: :boolean,
|
128
|
+
default: true,
|
129
|
+
desc: 'Set to false to disable SSL Verification.'
|
124
130
|
desc 'search_for_kb_server', 'Searches for all versions of Kill Bill server and prints them to the screen.'
|
125
131
|
def search_for_kb_server
|
126
132
|
say "Available versions: #{KillbillServerArtifact.versions(KillbillServerArtifact::KILLBILL_ARTIFACT_ID,
|
@@ -207,6 +213,14 @@ module KPM
|
|
207
213
|
type: :boolean,
|
208
214
|
default: true,
|
209
215
|
desc: 'Validates sha1 sum'
|
216
|
+
method_option :overrides,
|
217
|
+
type: :hash,
|
218
|
+
default: nil,
|
219
|
+
desc: "A hashed list of overrides. Available options are 'url', 'repository', 'username', and 'password'."
|
220
|
+
method_option :ssl_verify,
|
221
|
+
type: :boolean,
|
222
|
+
default: true,
|
223
|
+
desc: 'Set to false to disable SSL Verification.'
|
210
224
|
desc 'pull_defaultbundles <kb-version>', 'Pulls the default OSGI bundles and places it on your machine. If the kb-version has been specified, it is used to download the matching platform artifact; if not, it uses the latest released version.'
|
211
225
|
def pull_defaultbundles(kb_version = 'LATEST')
|
212
226
|
response = BaseInstaller.new(logger,
|
@@ -219,7 +233,14 @@ module KPM
|
|
219
233
|
options[:verify_sha1])
|
220
234
|
say "Artifact has been retrieved and can be found at path: #{response[:file_path]}", :green
|
221
235
|
end
|
222
|
-
|
236
|
+
method_option :overrides,
|
237
|
+
type: :hash,
|
238
|
+
default: nil,
|
239
|
+
desc: "A hashed list of overrides. Available options are 'url', 'repository', 'username', and 'password'."
|
240
|
+
method_option :ssl_verify,
|
241
|
+
type: :boolean,
|
242
|
+
default: true,
|
243
|
+
desc: 'Set to false to disable SSL Verification.'
|
223
244
|
desc 'search_for_plugins', 'Searches for all available plugins and prints them to the screen.'
|
224
245
|
def search_for_plugins
|
225
246
|
all_plugins = KillbillPluginArtifact.versions(options[:overrides], options[:ssl_verify])
|
@@ -251,6 +272,14 @@ module KPM
|
|
251
272
|
type: :boolean,
|
252
273
|
default: true,
|
253
274
|
desc: 'Validates sha1 sum'
|
275
|
+
method_option :overrides,
|
276
|
+
type: :hash,
|
277
|
+
default: nil,
|
278
|
+
desc: "A hashed list of overrides. Available options are 'url', 'repository', 'username', and 'password'."
|
279
|
+
method_option :ssl_verify,
|
280
|
+
type: :boolean,
|
281
|
+
default: true,
|
282
|
+
desc: 'Set to false to disable SSL Verification.'
|
254
283
|
desc 'pull_kaui_war <version>', 'Pulls Kaui war and places it on your machine. If version was not specified it uses the latest released version.'
|
255
284
|
def pull_kaui_war(version = 'LATEST')
|
256
285
|
response = KauiArtifact.pull(logger,
|
@@ -293,6 +322,14 @@ module KPM
|
|
293
322
|
type: :boolean,
|
294
323
|
default: false,
|
295
324
|
desc: 'Set the output format as JSON when true'
|
325
|
+
method_option :overrides,
|
326
|
+
type: :hash,
|
327
|
+
default: nil,
|
328
|
+
desc: "A hashed list of overrides. Available options are 'url', 'repository', 'username', and 'password'."
|
329
|
+
method_option :ssl_verify,
|
330
|
+
type: :boolean,
|
331
|
+
default: true,
|
332
|
+
desc: 'Set to false to disable SSL Verification.'
|
296
333
|
desc 'info', 'Describe information about a Kill Bill version'
|
297
334
|
def info
|
298
335
|
versions_info = KillbillServerArtifact.info(options[:version],
|
@@ -525,22 +562,6 @@ module KPM
|
|
525
562
|
type: :string,
|
526
563
|
default: nil,
|
527
564
|
desc: 'Killbill URL ex. http://127.0.0.1:8080'
|
528
|
-
method_option :database_name,
|
529
|
-
type: :string,
|
530
|
-
default: nil,
|
531
|
-
desc: 'DB name to connect'
|
532
|
-
method_option :database_credentials,
|
533
|
-
type: :array,
|
534
|
-
default: nil,
|
535
|
-
desc: 'DB credentials <user> <password>'
|
536
|
-
method_option :database_host,
|
537
|
-
type: :string,
|
538
|
-
default: nil,
|
539
|
-
desc: 'Database Host name'
|
540
|
-
method_option :database_port,
|
541
|
-
type: :string,
|
542
|
-
default: nil,
|
543
|
-
desc: 'Database port'
|
544
565
|
method_option :kaui_web_path,
|
545
566
|
type: :string,
|
546
567
|
default: nil,
|
@@ -563,17 +584,12 @@ module KPM
|
|
563
584
|
|
564
585
|
raise Interrupt, '--killbill_credentials, required format -> <user> <password>' if options[:killbill_credentials] && options[:killbill_credentials].size != 2
|
565
586
|
|
566
|
-
raise Interrupt, '--database_credentials, required format -> <user> <password>' if options[:database_credentials] && options[:database_credentials].size != 2
|
567
|
-
|
568
|
-
raise Interrupt, '--database_credentials, please provide a valid database name' if options[:database_name] && options[:database_name] == :database_name.to_s
|
569
|
-
|
570
587
|
raise Interrupt, '--kaui_web_path, please provide a valid kaui web path ' if options[:kaui_web_path] && options[:kaui_web_path] == :kaui_web_path.to_s
|
571
588
|
|
572
589
|
raise Interrupt, '--killbill_web_path, please provide a valid killbill web path' if options[:killbill_web_path] && options[:killbill_web_path] == :killbill_web_path.to_s
|
573
590
|
|
574
591
|
diagnostic = KPM::DiagnosticFile.new(options[:config_file], options[:killbill_api_credentials], options[:killbill_credentials],
|
575
|
-
options[:killbill_url], options[:
|
576
|
-
options[:database_host], options[:database_port], options[:kaui_web_path], options[:killbill_web_path], options[:bundles_dir], logger)
|
592
|
+
options[:killbill_url], options[:kaui_web_path], options[:killbill_web_path], options[:bundles_dir], logger)
|
577
593
|
diagnostic.export_data(options[:account_export], options[:log_dir])
|
578
594
|
rescue StandardError => e
|
579
595
|
logger.error "\e[91;1m#{e.message}\e[0m"
|
data/lib/kpm/version.rb
CHANGED
data/lib/kpm.rb
CHANGED
@@ -7,7 +7,6 @@ module KPM
|
|
7
7
|
autoload :Formatter, 'kpm/formatter'
|
8
8
|
autoload :Inspector, 'kpm/inspector'
|
9
9
|
autoload :Sha1Checker, 'kpm/sha1_checker'
|
10
|
-
autoload :TomcatManager, 'kpm/tomcat_manager'
|
11
10
|
autoload :KillbillServerArtifact, 'kpm/killbill_server_artifact'
|
12
11
|
autoload :KillbillPluginArtifact, 'kpm/killbill_plugin_artifact'
|
13
12
|
autoload :KauiArtifact, 'kpm/kaui_artifact'
|
data/packaging/Gemfile
CHANGED
data/packaging/kpm.sh
CHANGED
@@ -11,4 +11,4 @@ unset BUNDLE_IGNORE_CONFIG
|
|
11
11
|
|
12
12
|
# Run the actual app using the bundled Ruby interpreter, with Bundler activated.
|
13
13
|
# See https://github.com/phusion/traveling-ruby/issues/58
|
14
|
-
exec "$SELFDIR/lib/ruby/bin/ruby" -rbundler/setup -rreadline $SELFDIR/lib/vendor
|
14
|
+
exec "$SELFDIR/lib/ruby/bin/ruby" -rbundler/setup -rreadline $SELFDIR/lib/vendor/*ruby/2.*/bin/kpm $@
|
data/pom.xml
CHANGED
@@ -22,7 +22,7 @@
|
|
22
22
|
<modelVersion>4.0.0</modelVersion>
|
23
23
|
<groupId>org.kill-bill.billing.installer</groupId>
|
24
24
|
<artifactId>kpm</artifactId>
|
25
|
-
<version>0.11.
|
25
|
+
<version>0.11.2</version>
|
26
26
|
<packaging>pom</packaging>
|
27
27
|
<name>KPM</name>
|
28
28
|
<description>KPM: the Kill Bill Package Manager</description>
|
@@ -147,11 +147,6 @@
|
|
147
147
|
</goals>
|
148
148
|
<configuration>
|
149
149
|
<artifacts>
|
150
|
-
<artifact>
|
151
|
-
<file>kpm-${project.version}-linux-x86.tar.gz</file>
|
152
|
-
<type>tar.gz</type>
|
153
|
-
<classifier>linux-x86</classifier>
|
154
|
-
</artifact>
|
155
150
|
<artifact>
|
156
151
|
<file>kpm-${project.version}-linux-x86_64.tar.gz</file>
|
157
152
|
<type>tar.gz</type>
|
@@ -162,6 +157,16 @@
|
|
162
157
|
<type>tar.gz</type>
|
163
158
|
<classifier>osx</classifier>
|
164
159
|
</artifact>
|
160
|
+
<artifact>
|
161
|
+
<file>kpm-${project.version}-osx-arm64.tar.gz</file>
|
162
|
+
<type>tar.gz</type>
|
163
|
+
<classifier>osx-arm64</classifier>
|
164
|
+
</artifact>
|
165
|
+
<artifact>
|
166
|
+
<file>kpm-${project.version}-noarch.tar.gz</file>
|
167
|
+
<type>tar.gz</type>
|
168
|
+
<classifier>noarch</classifier>
|
169
|
+
</artifact>
|
165
170
|
</artifacts>
|
166
171
|
</configuration>
|
167
172
|
</execution>
|
data/tasks/package.rake
CHANGED
@@ -9,33 +9,50 @@ PACKAGE_NAME = 'kpm'
|
|
9
9
|
require './lib/kpm/version'
|
10
10
|
VERSION = KPM::VERSION
|
11
11
|
|
12
|
-
# See https://
|
13
|
-
|
12
|
+
# See https://www.jruby.org/download
|
13
|
+
JRUBY_VERSION = '9.4.5.0'
|
14
|
+
# See https://github.com/Homebrew/homebrew-portable-ruby/releases
|
15
|
+
HOMEBREW_PORTABLE_RUBY_VERSION = '3.1.4'
|
14
16
|
|
15
17
|
# Remove unused files to reduce package size
|
16
18
|
GEMS_PATH = 'packaging/vendor/ruby/*/gems/*/'
|
17
19
|
REMOVE_FILES = %w[test tests spec README* CHANGE* Change* COPYING* LICENSE* MIT-LICENSE* doc docs examples ext/*/Makefile .gitignore .travis.yml].freeze
|
18
20
|
REMOVE_EXTENSIONS = %w[*.md *.c *.h *.rl extconf.rb *.java *.class *.so *.o].freeze
|
19
21
|
|
22
|
+
NOARCH_TARGET = 'noarch'
|
23
|
+
LINUX_X86_TARGET = 'x86_64_linux'
|
24
|
+
OSX_X86_TARGET = 'el_capitan'
|
25
|
+
OSX_ARM_TARGET = 'arm64_big_sur'
|
26
|
+
|
20
27
|
desc 'Package your app'
|
21
|
-
task package: %w[package:linux:
|
28
|
+
task package: %w[package:noarch package:linux:x86_64 package:osx:x86_64 package:osx:arm64]
|
22
29
|
|
23
30
|
namespace :package do
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
end
|
31
|
+
desc 'Package KPM (noarch)'
|
32
|
+
task noarch: [:bundle_install, "packaging/jruby-dist-#{JRUBY_VERSION}-bin.tar.gz"] do
|
33
|
+
create_package(NOARCH_TARGET, 'noarch')
|
34
|
+
end
|
29
35
|
|
36
|
+
namespace :linux do
|
30
37
|
desc 'Package KPM for Linux x86_64'
|
31
|
-
task x86_64: [:bundle_install, "packaging/
|
32
|
-
|
38
|
+
task x86_64: [:bundle_install, "packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{LINUX_X86_TARGET}.bottle.tar.gz"] do
|
39
|
+
ensure_ruby_version
|
40
|
+
create_package(LINUX_X86_TARGET, 'linux-x86_64')
|
33
41
|
end
|
34
42
|
end
|
35
43
|
|
36
|
-
|
37
|
-
|
38
|
-
|
44
|
+
namespace :osx do
|
45
|
+
desc 'Package KPM for OSX x86_64'
|
46
|
+
task x86_64: [:bundle_install, "packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{OSX_X86_TARGET}.bottle.tar.gz"] do
|
47
|
+
ensure_ruby_version
|
48
|
+
create_package(OSX_X86_TARGET, 'osx')
|
49
|
+
end
|
50
|
+
|
51
|
+
desc 'Package KPM for OSX arm64'
|
52
|
+
task arm64: [:bundle_install, "packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{OSX_ARM_TARGET}.bottle.tar.gz"] do
|
53
|
+
ensure_ruby_version
|
54
|
+
create_package(OSX_ARM_TARGET, 'osx-arm64')
|
55
|
+
end
|
39
56
|
end
|
40
57
|
|
41
58
|
desc 'Install gems to local directory'
|
@@ -43,15 +60,12 @@ namespace :package do
|
|
43
60
|
# abort if version packaging does not exist on repository
|
44
61
|
abort "KPM #{VERSION} does not exists in the repository." unless gem_exists?
|
45
62
|
|
46
|
-
# Note! Must match TRAVELING_RUBY_VERSION above
|
47
|
-
expected_ruby_version = TRAVELING_RUBY_VERSION.split('-')[-1]
|
48
|
-
abort "You can only 'bundle install' using Ruby #{expected_ruby_version}, because that's what Traveling Ruby uses." if RUBY_VERSION !~ /#{Regexp.quote(expected_ruby_version)}/
|
49
63
|
sh 'rm -rf packaging/tmp'
|
50
64
|
sh 'mkdir -p packaging/tmp'
|
51
65
|
sh 'cp packaging/Gemfile packaging/tmp/'
|
52
66
|
sh "sed -i 's/VERSION/#{VERSION}/g' packaging/tmp/Gemfile"
|
53
67
|
|
54
|
-
sh
|
68
|
+
sh 'rm -rf packaging/vendor/ruby/2.*/bundler' # if multiple clones of same repo, may load in wrong one
|
55
69
|
|
56
70
|
Bundler.with_clean_env do
|
57
71
|
sh 'cd packaging/tmp && env BUNDLE_IGNORE_CONFIG=1 bundle install --path ../vendor --without development'
|
@@ -80,28 +94,42 @@ namespace :package do
|
|
80
94
|
end
|
81
95
|
end
|
82
96
|
|
83
|
-
file "packaging/
|
84
|
-
|
97
|
+
file "packaging/jruby-dist-#{JRUBY_VERSION}-bin.tar.gz" do
|
98
|
+
download_noarch_runtime
|
85
99
|
end
|
86
100
|
|
87
|
-
file "packaging/
|
88
|
-
|
101
|
+
file "packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{LINUX_X86_TARGET}.bottle.tar.gz" do
|
102
|
+
download_portable_runtime(LINUX_X86_TARGET)
|
89
103
|
end
|
90
104
|
|
91
|
-
file "packaging/
|
92
|
-
|
105
|
+
file "packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{OSX_X86_TARGET}.bottle.tar.gz" do
|
106
|
+
download_portable_runtime(OSX_X86_TARGET)
|
93
107
|
end
|
94
108
|
|
95
|
-
|
96
|
-
|
109
|
+
file "packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{OSX_ARM_TARGET}.bottle.tar.gz" do
|
110
|
+
download_portable_runtime(OSX_ARM_TARGET)
|
111
|
+
end
|
112
|
+
|
113
|
+
def create_package(target, package_dir_suffix)
|
114
|
+
pom_version = %r{<version>(.*)</version>}.match(File.read("#{__dir__}/../pom.xml"))[1]
|
115
|
+
package_dir = "#{PACKAGE_NAME}-#{pom_version}-#{package_dir_suffix}"
|
97
116
|
sh "rm -rf #{package_dir}"
|
98
117
|
sh "mkdir -p #{package_dir}/lib/ruby"
|
99
|
-
|
118
|
+
if target == NOARCH_TARGET
|
119
|
+
sh "tar -xzf packaging/jruby-dist-#{JRUBY_VERSION}-bin.tar.gz -C #{package_dir}/lib/ruby --strip-components 1"
|
120
|
+
else
|
121
|
+
sh "tar -xzf packaging/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{target}.bottle.tar.gz -C #{package_dir}/lib/ruby --strip-components 2"
|
122
|
+
end
|
100
123
|
|
101
124
|
sh "cp packaging/kpm.sh #{package_dir}/kpm"
|
102
125
|
sh "chmod +x packaging/kpm.sh #{package_dir}/kpm"
|
103
126
|
|
104
127
|
sh "cp -pR packaging/vendor #{package_dir}/lib/"
|
128
|
+
if target == NOARCH_TARGET
|
129
|
+
# Need to tweak a few things to make it work with JRuby
|
130
|
+
sh "cp #{package_dir}/lib/ruby/bin/jruby #{package_dir}/lib/ruby/bin/ruby"
|
131
|
+
sh "mv #{package_dir}/lib/vendor/ruby #{package_dir}/lib/vendor/jruby"
|
132
|
+
end
|
105
133
|
|
106
134
|
sh "cp packaging/Gemfile* #{package_dir}/lib/vendor/"
|
107
135
|
sh "sed -i 's/VERSION/#{VERSION}/g' #{package_dir}/lib/vendor/Gemfile"
|
@@ -114,9 +142,14 @@ def create_package(target)
|
|
114
142
|
sh "rm -rf #{package_dir}"
|
115
143
|
end
|
116
144
|
|
117
|
-
def
|
145
|
+
def download_noarch_runtime
|
146
|
+
sh 'mkdir -p packaging && cd packaging && curl -L -O --fail ' \
|
147
|
+
"https://repo1.maven.org/maven2/org/jruby/jruby-dist/#{JRUBY_VERSION}/jruby-dist-#{JRUBY_VERSION}-bin.tar.gz"
|
148
|
+
end
|
149
|
+
|
150
|
+
def download_portable_runtime(target)
|
118
151
|
sh 'mkdir -p packaging && cd packaging && curl -L -O --fail ' \
|
119
|
-
"https://
|
152
|
+
"https://github.com/Homebrew/homebrew-portable-ruby/releases/download/#{HOMEBREW_PORTABLE_RUBY_VERSION}/portable-ruby-#{HOMEBREW_PORTABLE_RUBY_VERSION}.#{target}.bottle.tar.gz"
|
120
153
|
end
|
121
154
|
|
122
155
|
def gem_exists?
|
@@ -126,3 +159,9 @@ def gem_exists?
|
|
126
159
|
specification = YAML.load(response)
|
127
160
|
specification.instance_of?(Gem::Specification)
|
128
161
|
end
|
162
|
+
|
163
|
+
def ensure_ruby_version
|
164
|
+
# Note! Must match HOMEBREW_PORTABLE_RUBY_VERSION above
|
165
|
+
expected_ruby_version = HOMEBREW_PORTABLE_RUBY_VERSION.split('_')[0]
|
166
|
+
abort "You can only 'bundle install' using Ruby #{expected_ruby_version}, because that's what homebrew-portable-ruby uses." if RUBY_VERSION !~ /#{Regexp.quote(expected_ruby_version)}/
|
167
|
+
end
|
metadata
CHANGED
@@ -1,71 +1,89 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: kpm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kill Bill core team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2025-02-26 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: highline
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 1.6.21
|
20
|
+
- - "<"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 2.1.0
|
20
23
|
type: :runtime
|
21
24
|
prerelease: false
|
22
25
|
version_requirements: !ruby/object:Gem::Requirement
|
23
26
|
requirements:
|
24
|
-
- - "
|
27
|
+
- - ">="
|
25
28
|
- !ruby/object:Gem::Version
|
26
29
|
version: 1.6.21
|
30
|
+
- - "<"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 2.1.0
|
27
33
|
- !ruby/object:Gem::Dependency
|
28
34
|
name: killbill-client
|
29
35
|
requirement: !ruby/object:Gem::Requirement
|
30
36
|
requirements:
|
31
|
-
- - "
|
37
|
+
- - ">="
|
32
38
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
39
|
+
version: '0'
|
34
40
|
type: :runtime
|
35
41
|
prerelease: false
|
36
42
|
version_requirements: !ruby/object:Gem::Requirement
|
37
43
|
requirements:
|
38
|
-
- - "
|
44
|
+
- - ">="
|
39
45
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
46
|
+
version: '0'
|
41
47
|
- !ruby/object:Gem::Dependency
|
42
48
|
name: rubyzip
|
43
49
|
requirement: !ruby/object:Gem::Requirement
|
44
50
|
requirements:
|
45
|
-
- - "
|
51
|
+
- - ">="
|
46
52
|
- !ruby/object:Gem::Version
|
47
|
-
version: 1.3
|
53
|
+
version: '1.3'
|
54
|
+
- - "<"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '2.4'
|
48
57
|
type: :runtime
|
49
58
|
prerelease: false
|
50
59
|
version_requirements: !ruby/object:Gem::Requirement
|
51
60
|
requirements:
|
52
|
-
- - "
|
61
|
+
- - ">="
|
53
62
|
- !ruby/object:Gem::Version
|
54
|
-
version: 1.3
|
63
|
+
version: '1.3'
|
64
|
+
- - "<"
|
65
|
+
- !ruby/object:Gem::Version
|
66
|
+
version: '2.4'
|
55
67
|
- !ruby/object:Gem::Dependency
|
56
68
|
name: thor
|
57
69
|
requirement: !ruby/object:Gem::Requirement
|
58
70
|
requirements:
|
59
|
-
- - "
|
71
|
+
- - ">="
|
60
72
|
- !ruby/object:Gem::Version
|
61
73
|
version: 0.19.1
|
74
|
+
- - "<"
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 1.3.0
|
62
77
|
type: :runtime
|
63
78
|
prerelease: false
|
64
79
|
version_requirements: !ruby/object:Gem::Requirement
|
65
80
|
requirements:
|
66
|
-
- - "
|
81
|
+
- - ">="
|
67
82
|
- !ruby/object:Gem::Version
|
68
83
|
version: 0.19.1
|
84
|
+
- - "<"
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: 1.3.0
|
69
87
|
- !ruby/object:Gem::Dependency
|
70
88
|
name: gem-release
|
71
89
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +126,20 @@ dependencies:
|
|
108
126
|
- - "~>"
|
109
127
|
- !ruby/object:Gem::Version
|
110
128
|
version: '3.9'
|
129
|
+
- !ruby/object:Gem::Dependency
|
130
|
+
name: rubocop
|
131
|
+
requirement: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - "~>"
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: 0.88.0
|
136
|
+
type: :development
|
137
|
+
prerelease: false
|
138
|
+
version_requirements: !ruby/object:Gem::Requirement
|
139
|
+
requirements:
|
140
|
+
- - "~>"
|
141
|
+
- !ruby/object:Gem::Version
|
142
|
+
version: 0.88.0
|
111
143
|
description: A package manager for Kill Bill.
|
112
144
|
email: killbilling-users@googlegroups.com
|
113
145
|
executables:
|
@@ -159,7 +191,6 @@ files:
|
|
159
191
|
- lib/kpm/system_helpers/system_proxy.rb
|
160
192
|
- lib/kpm/tasks.rb
|
161
193
|
- lib/kpm/tenant_config.rb
|
162
|
-
- lib/kpm/tomcat_manager.rb
|
163
194
|
- lib/kpm/trace_logger.rb
|
164
195
|
- lib/kpm/uninstaller.rb
|
165
196
|
- lib/kpm/utils.rb
|
@@ -168,7 +199,6 @@ files:
|
|
168
199
|
- packaging/bundler-config
|
169
200
|
- packaging/kpm.sh
|
170
201
|
- pom.xml
|
171
|
-
- release.sh
|
172
202
|
- spec/kpm/remote/base_artifact_spec.rb
|
173
203
|
- spec/kpm/remote/base_installer_spec.rb
|
174
204
|
- spec/kpm/remote/cloudsmith_api_calls_spec.rb
|
@@ -181,7 +211,6 @@ files:
|
|
181
211
|
- spec/kpm/remote/nexus_facade_spec.rb
|
182
212
|
- spec/kpm/remote/tenant_config_spec.rb
|
183
213
|
- spec/kpm/remote/tenant_config_spec.yml
|
184
|
-
- spec/kpm/remote/tomcat_manager_spec.rb
|
185
214
|
- spec/kpm/unit/actions_spec.rb
|
186
215
|
- spec/kpm/unit/base_artifact_spec.rb
|
187
216
|
- spec/kpm/unit/cpu_information_spec.rb
|
@@ -223,7 +252,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
223
252
|
- !ruby/object:Gem::Version
|
224
253
|
version: '0'
|
225
254
|
requirements: []
|
226
|
-
rubygems_version: 3.
|
255
|
+
rubygems_version: 3.3.26
|
227
256
|
signing_key:
|
228
257
|
specification_version: 4
|
229
258
|
summary: Kill Bill package manager.
|
data/lib/kpm/tomcat_manager.rb
DELETED
@@ -1,95 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'pathname'
|
4
|
-
require 'net/http'
|
5
|
-
require 'uri'
|
6
|
-
|
7
|
-
module KPM
|
8
|
-
class TomcatManager
|
9
|
-
DOWNLOAD_URL = 'https://s3.amazonaws.com/kb-binaries/apache-tomcat-7.0.42.tar.gz'
|
10
|
-
|
11
|
-
def initialize(tomcat_dir, logger)
|
12
|
-
@tomcat_dir = Pathname.new(tomcat_dir)
|
13
|
-
@logger = logger
|
14
|
-
end
|
15
|
-
|
16
|
-
def download
|
17
|
-
uri = URI.parse(DOWNLOAD_URL)
|
18
|
-
|
19
|
-
path = nil
|
20
|
-
Dir.mktmpdir do |dir|
|
21
|
-
file = Pathname.new(dir).join('tomcat.tar.gz')
|
22
|
-
|
23
|
-
@logger.info "Starting download of #{DOWNLOAD_URL} to #{file}"
|
24
|
-
Net::HTTP.start(uri.host, uri.port, use_ssl: uri.scheme == 'https') do |http|
|
25
|
-
File.open(file, 'wb+') do |f|
|
26
|
-
http.get(uri.path) do |body|
|
27
|
-
f.write(body)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
|
32
|
-
path = Utils.unpack_tgz(file.to_s, @tomcat_dir, true)
|
33
|
-
end
|
34
|
-
|
35
|
-
@logger.info "Successful installation of #{DOWNLOAD_URL} to #{path}"
|
36
|
-
path
|
37
|
-
end
|
38
|
-
|
39
|
-
def setup
|
40
|
-
# Remove default webapps
|
41
|
-
%w[ROOT docs examples host-manager manager].each do |webapp|
|
42
|
-
FileUtils.rm_rf(@tomcat_dir.join('webapps').join(webapp))
|
43
|
-
end
|
44
|
-
|
45
|
-
# Update Root.xml
|
46
|
-
root_xml_dir = @tomcat_dir.join('conf').join('Catalina').join('localhost')
|
47
|
-
FileUtils.mkdir_p(root_xml_dir)
|
48
|
-
File.write(root_xml_dir.join('ROOT.xml'), '<Context></Context>')
|
49
|
-
|
50
|
-
# Setup default properties
|
51
|
-
setenv_sh_path = @tomcat_dir.join('bin').join('setenv.sh')
|
52
|
-
|
53
|
-
File.write(setenv_sh_path, "export CATALINA_OPTS=\"$CATALINA_OPTS #{default_java_properties}\"")
|
54
|
-
|
55
|
-
@tomcat_dir.join('webapps').join('ROOT.war').to_s
|
56
|
-
end
|
57
|
-
|
58
|
-
def help
|
59
|
-
"Tomcat installed at #{@tomcat_dir}
|
60
|
-
Start script: #{@tomcat_dir.join('bin').join('startup.sh')}
|
61
|
-
Stop script: #{@tomcat_dir.join('bin').join('shutdown.sh')}
|
62
|
-
Logs: #{@tomcat_dir.join('logs')}"
|
63
|
-
end
|
64
|
-
|
65
|
-
private
|
66
|
-
|
67
|
-
def default_java_properties
|
68
|
-
<<HEREDOC.gsub(/\s+/, ' ').strip
|
69
|
-
-server
|
70
|
-
-showversion
|
71
|
-
-XX:+PrintCommandLineFlags
|
72
|
-
-XX:+UseCodeCacheFlushing
|
73
|
-
-XX:PermSize=512m
|
74
|
-
-XX:MaxPermSize=1G
|
75
|
-
-Xms1G
|
76
|
-
-Xmx2G
|
77
|
-
-XX:+CMSClassUnloadingEnabled
|
78
|
-
-XX:-OmitStackTraceInFastThrow
|
79
|
-
-XX:+UseParNewGC
|
80
|
-
-XX:+UseConcMarkSweepGC
|
81
|
-
-XX:+CMSConcurrentMTEnabled
|
82
|
-
-XX:+CMSParallelRemarkEnabled
|
83
|
-
-XX:+UseCMSInitiatingOccupancyOnly
|
84
|
-
-XX:CMSInitiatingOccupancyFraction=70
|
85
|
-
-XX:+ScavengeBeforeFullGC
|
86
|
-
-XX:+CMSScavengeBeforeRemark
|
87
|
-
-XX:NewSize=600m
|
88
|
-
-XX:MaxNewSize=900m
|
89
|
-
-XX:SurvivorRatio=10
|
90
|
-
-XX:+DisableExplicitGC
|
91
|
-
-Djava.security.egd=file:/dev/./urandom
|
92
|
-
HEREDOC
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|
data/release.sh
DELETED
@@ -1,60 +0,0 @@
|
|
1
|
-
#!/usr/bin/env bash
|
2
|
-
|
3
|
-
set -e
|
4
|
-
|
5
|
-
BUNDLE=${BUNDLE-"bundle exec"}
|
6
|
-
MVN=${MVN-"mvn"}
|
7
|
-
|
8
|
-
if [ 'GNU' != "$(tar --help | grep GNU | head -1 | awk '{print $1}')" ]; then
|
9
|
-
echo 'Unable to release: make sure to use GNU tar'
|
10
|
-
exit 1
|
11
|
-
fi
|
12
|
-
|
13
|
-
# See TRAVELING_RUBY_VERSION in tasks/package.rake
|
14
|
-
if [[ "$(ruby --version 2>&1 | tail -1 | awk '{print $2}')" != 2.2.2* ]]; then
|
15
|
-
echo 'Ruby version 2.2.2 is required'
|
16
|
-
exit 1
|
17
|
-
fi
|
18
|
-
|
19
|
-
VERSION=`grep -E '<version>([0-9]+\.[0-9]+\.[0-9]+)</version>' pom.xml | sed 's/[\t \n]*<version>\(.*\)<\/version>[\t \n]*/\1/'`
|
20
|
-
if [[ -z "$NO_RELEASE" && "$VERSION" != "$(ruby -r./lib/kpm/version.rb -e "print KPM::VERSION")" ]]; then
|
21
|
-
echo 'Unable to release: make sure the versions in pom.xml and VERSION match'
|
22
|
-
exit 1
|
23
|
-
fi
|
24
|
-
|
25
|
-
if [[ -z "$NO_RELEASE" ]]; then
|
26
|
-
echo 'Pushing the gem to Rubygems'
|
27
|
-
$BUNDLE rake release
|
28
|
-
fi
|
29
|
-
|
30
|
-
# Wait for the gem to be propagated
|
31
|
-
sleep 15
|
32
|
-
|
33
|
-
$BUNDLE rake package
|
34
|
-
|
35
|
-
if [[ -z "$NO_RELEASE" ]]; then
|
36
|
-
GOAL=gpg:sign-and-deploy-file
|
37
|
-
REPOSITORY_ID=ossrh-releases
|
38
|
-
URL=https://oss.sonatype.org/service/local/staging/deploy/maven2/
|
39
|
-
REPO_VERSION=$VERSION
|
40
|
-
else
|
41
|
-
GOAL=deploy:deploy-file
|
42
|
-
REPOSITORY_ID=sonatype-nexus-snapshots
|
43
|
-
URL=https://oss.sonatype.org/content/repositories/snapshots/
|
44
|
-
REPO_VERSION="$VERSION-SNAPSHOT"
|
45
|
-
fi
|
46
|
-
|
47
|
-
echo "Pushing artifacts to Maven Central"
|
48
|
-
$MVN $GOAL \
|
49
|
-
-DgroupId=org.kill-bill.billing.installer \
|
50
|
-
-DartifactId=kpm \
|
51
|
-
-Dversion=$REPO_VERSION \
|
52
|
-
-Dpackaging=tar.gz \
|
53
|
-
-DrepositoryId=$REPOSITORY_ID \
|
54
|
-
-Durl=$URL \
|
55
|
-
-Dfile=kpm-$VERSION-linux-x86_64.tar.gz \
|
56
|
-
-Dclassifier=linux-x86_64 \
|
57
|
-
-Dfiles=kpm-$VERSION-linux-x86.tar.gz,kpm-$VERSION-osx.tar.gz \
|
58
|
-
-Dclassifiers=linux-x86,osx \
|
59
|
-
-Dtypes=tar.gz,tar.gz \
|
60
|
-
-DpomFile=pom.xml
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
describe KPM::TomcatManager do
|
6
|
-
before(:all) do
|
7
|
-
@logger = Logger.new(STDOUT)
|
8
|
-
@logger.level = Logger::INFO
|
9
|
-
end
|
10
|
-
|
11
|
-
it 'should be able to download and unpack tomcat' do
|
12
|
-
Dir.mktmpdir do |dir|
|
13
|
-
manager = KPM::TomcatManager.new(dir, @logger)
|
14
|
-
|
15
|
-
tomcat_path = manager.download
|
16
|
-
expect(tomcat_path).not_to be_nil
|
17
|
-
|
18
|
-
root_war_path = manager.setup
|
19
|
-
expect(root_war_path).not_to be_nil
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|