redmine-installer 2.0.0.rc1 → 2.0.0.rc2
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/README.md +9 -2
- data/lib/redmine-installer/cli.rb +5 -1
- data/lib/redmine-installer/package.rb +21 -7
- data/lib/redmine-installer/spec/spec.rb +12 -49
- data/lib/redmine-installer/version.rb +1 -1
- data/redmine-installer.gemspec +1 -1
- data/spec/installer_helper.rb +2 -2
- data/spec/lib/install_spec.rb +7 -8
- data/spec/lib/upgrade_spec.rb +2 -2
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26158b437ec271b8119c49fefe9d6667f0606b51
|
4
|
+
data.tar.gz: 39ee0b39018f4ef9d87a136c830db545ce1529a9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bbee7a53bc34292d1760923e3388eaf3a892333ca3a3bae882411be2acebb1bb222b8db56b8239193c65658447e9d920e9c4445c8d0394e49eb4647db431b0b4
|
7
|
+
data.tar.gz: 4465562fb27dff866de2695f23dc612900f1c6a99edf107f449b4691f03ac3875051ec28b2209b199d4569df1655e44adef81a1b7266e19a04004a6ceb7fcb47
|
data/README.md
CHANGED
@@ -46,7 +46,7 @@ Create new project on empty directory. All argument are optional. Directory shou
|
|
46
46
|
|
47
47
|
```
|
48
48
|
redmine help install
|
49
|
-
redmine install [PACKAGE] [REDMINE_ROOT] [options]
|
49
|
+
redmine install [PACKAGE PATH or URL] [REDMINE_ROOT] [options]
|
50
50
|
```
|
51
51
|
|
52
52
|
```
|
@@ -59,6 +59,9 @@ Examples:
|
|
59
59
|
Install Redmine. Installer will ask for every required parameters.
|
60
60
|
- `redmine install`
|
61
61
|
|
62
|
+
Install Redmine from internet
|
63
|
+
- `redmine install https://server.tld/REDMINE_PACKAGE.zip /srv/redmine`
|
64
|
+
|
62
65
|
Install Redmine from redmine.zip package into /srv/redmine folder.
|
63
66
|
- `redmine install redmine.zip /srv/redmine`
|
64
67
|
|
@@ -77,7 +80,7 @@ Since current root is deleted you should use option `--keep` if you want preserv
|
|
77
80
|
|
78
81
|
```
|
79
82
|
redmine help upgrade
|
80
|
-
redmine upgrade [PACKAGE] [REDMINE_ROOT] [options]
|
83
|
+
redmine upgrade [PACKAGE PATH or URL] [REDMINE_ROOT] [options]
|
81
84
|
```
|
82
85
|
|
83
86
|
```
|
@@ -92,6 +95,9 @@ Examples:
|
|
92
95
|
Upgrade Redmine located on /srv/redmine with package redmine2.zip
|
93
96
|
- `redmine upgrade redmine2.zip /srv/redmine`
|
94
97
|
|
98
|
+
Upgrade Redmine from internet
|
99
|
+
- `redmine upgrade https://server.tld/REDMINE_PACKAGE.zip /srv/redmine`
|
100
|
+
|
95
101
|
Upgrade Redmine and keep directory.
|
96
102
|
- `redmine upgrade redmine2.zip /srv/redmine --keep directory_i_want_keep`
|
97
103
|
|
@@ -111,3 +117,4 @@ Examples:
|
|
111
117
|
|
112
118
|
Backup project located on /srv/redmine
|
113
119
|
- `redmine upgrade /srv/redmine`
|
120
|
+
|
@@ -31,6 +31,8 @@ module RedmineInstaller
|
|
31
31
|
|
32
32
|
c.example 'Install from archive',
|
33
33
|
'redmine install ~/REDMINE_PACKAGE.zip'
|
34
|
+
c.example 'Install package from internet',
|
35
|
+
'redmine install https://server.tld/REDMINE_PACKAGE.zip'
|
34
36
|
c.example 'Install specific version from internet',
|
35
37
|
'redmine install v3.1.0'
|
36
38
|
c.example 'Install package to new dir',
|
@@ -56,8 +58,10 @@ module RedmineInstaller
|
|
56
58
|
|
57
59
|
c.example 'Upgrade with new package',
|
58
60
|
'redmine upgrade ~/REDMINE_PACKAGE.zip'
|
59
|
-
c.example 'Upgrade',
|
61
|
+
c.example 'Upgrade with package from internet',
|
60
62
|
'redmine upgrade ~/REDMINE_PACKAGE.zip redmine_root'
|
63
|
+
c.example 'Upgrade',
|
64
|
+
'redmine upgrade https://server.tld/REDMINE_PACKAGE.zip redmine_root'
|
61
65
|
c.example 'Upgrade and keep directory',
|
62
66
|
'redmine upgrade --keep git_repositories'
|
63
67
|
|
@@ -23,7 +23,9 @@ module RedmineInstaller
|
|
23
23
|
|
24
24
|
if !File.exist?(@package)
|
25
25
|
if @package =~ /\Av?(\d\.\d\.\d)\Z/
|
26
|
-
@package =
|
26
|
+
@package = download_redmine_version($1)
|
27
|
+
elsif valid_url?(@package)
|
28
|
+
@package = download_from_url(@package)
|
27
29
|
else
|
28
30
|
error "File doesn't exist #{@package}"
|
29
31
|
end
|
@@ -82,20 +84,32 @@ module RedmineInstaller
|
|
82
84
|
|
83
85
|
private
|
84
86
|
|
85
|
-
def
|
87
|
+
def valid_url?(string)
|
88
|
+
uri = URI.parse(string)
|
89
|
+
['http', 'https'].include?(uri.scheme)
|
90
|
+
rescue URI::BadURIError, URI::InvalidURIError
|
91
|
+
false
|
92
|
+
end
|
93
|
+
|
94
|
+
def download_redmine_version(version)
|
95
|
+
url = "http://www.redmine.org/releases/redmine-#{version}.zip"
|
96
|
+
download_from_url(url)
|
97
|
+
end
|
98
|
+
|
99
|
+
def download_from_url(url)
|
100
|
+
uri = URI.parse(url)
|
101
|
+
|
86
102
|
@temp_file = Tempfile.new(['redmine', '.zip'])
|
87
103
|
@temp_file.binmode
|
88
104
|
|
89
|
-
uri = URI("http://www.redmine.org/releases/redmine-#{version}.zip")
|
90
|
-
|
91
105
|
Net::HTTP.start(uri.host, uri.port) do |http|
|
92
106
|
head = http.request_head(uri)
|
93
107
|
|
94
108
|
unless head.is_a?(Net::HTTPSuccess)
|
95
|
-
error "Cannot download
|
109
|
+
error "Cannot download #{uri}"
|
96
110
|
end
|
97
111
|
|
98
|
-
print_title("Downloading
|
112
|
+
print_title("Downloading #{uri}")
|
99
113
|
progressbar = TTY::ProgressBar.new(PROGRESSBAR_FORMAT, total: head['content-length'].to_i, frequency: 2, clear: true)
|
100
114
|
|
101
115
|
http.get(uri) do |data|
|
@@ -106,7 +120,7 @@ module RedmineInstaller
|
|
106
120
|
progressbar.finish
|
107
121
|
end
|
108
122
|
|
109
|
-
logger.info("
|
123
|
+
logger.info("#{uri} downloaded")
|
110
124
|
|
111
125
|
@temp_file.close
|
112
126
|
@temp_file.path
|
@@ -1,52 +1,3 @@
|
|
1
|
-
# $stdin.sync = true
|
2
|
-
# $stdout.sync = true
|
3
|
-
|
4
|
-
# # require 'redmine-installer/spec/cursor'
|
5
|
-
|
6
|
-
# class TestPrompt < TTY::Prompt
|
7
|
-
|
8
|
-
# def initialize(*args)
|
9
|
-
# # @input = StringIO.new
|
10
|
-
# # @output = StringIO.new
|
11
|
-
# # super(input: @input, output: @output)
|
12
|
-
# super
|
13
|
-
# @pastel = Pastel.new(enabled: false)
|
14
|
-
# end
|
15
|
-
|
16
|
-
# end
|
17
|
-
|
18
|
-
# module RedmineInstaller
|
19
|
-
|
20
|
-
# # def self.prompt
|
21
|
-
# # @prompt ||= TestPrompt.new
|
22
|
-
# # end
|
23
|
-
|
24
|
-
# def self.pastel
|
25
|
-
# @pastel ||= Pastel.new(enabled: false)
|
26
|
-
# end
|
27
|
-
|
28
|
-
# end
|
29
|
-
|
30
|
-
# module TTY
|
31
|
-
# module Cursor
|
32
|
-
|
33
|
-
# singleton_methods.each do |name|
|
34
|
-
# class_eval <<-METHODS
|
35
|
-
|
36
|
-
# def #{name}(*)
|
37
|
-
# ''
|
38
|
-
# end
|
39
|
-
|
40
|
-
# def self.#{name}(*)
|
41
|
-
# ''
|
42
|
-
# end
|
43
|
-
|
44
|
-
# METHODS
|
45
|
-
# end
|
46
|
-
|
47
|
-
# end
|
48
|
-
# end
|
49
|
-
|
50
1
|
$stdin.sync = true
|
51
2
|
$stdout.sync = true
|
52
3
|
|
@@ -72,10 +23,22 @@ class TestPrompt < TTY::Prompt
|
|
72
23
|
|
73
24
|
def initialize(*args)
|
74
25
|
super
|
26
|
+
@enabled_color = false
|
75
27
|
@pastel = Pastel.new(enabled: false)
|
76
28
|
end
|
77
29
|
|
78
30
|
end
|
79
31
|
|
32
|
+
class TTY::Prompt::Reader::Console
|
33
|
+
|
34
|
+
def get_char(options)
|
35
|
+
return input.getc unless input.tty?
|
36
|
+
mode.raw(options[:raw]) do
|
37
|
+
mode.echo(options[:echo]) { input.getc }
|
38
|
+
end
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
42
|
+
|
80
43
|
RedmineInstaller.instance_variable_set(:@prompt, TestPrompt.new)
|
81
44
|
RedmineInstaller.instance_variable_set(:@pastel, Pastel.new(enabled: false))
|
data/redmine-installer.gemspec
CHANGED
@@ -22,7 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.required_ruby_version = '>= 2.1.0'
|
23
23
|
|
24
24
|
spec.add_runtime_dependency 'commander'
|
25
|
-
spec.add_runtime_dependency 'tty-prompt', '~> 0.
|
25
|
+
spec.add_runtime_dependency 'tty-prompt', '~> 0.11.0'
|
26
26
|
spec.add_runtime_dependency 'tty-spinner', '~> 0.4.1'
|
27
27
|
spec.add_runtime_dependency 'tty-progressbar', '~> 0.10.1'
|
28
28
|
spec.add_runtime_dependency 'rubyzip'
|
data/spec/installer_helper.rb
CHANGED
@@ -28,7 +28,7 @@ module InstallerHelper
|
|
28
28
|
end
|
29
29
|
|
30
30
|
def go_down
|
31
|
-
write(TTY::Prompt::Reader::Codes
|
31
|
+
write(TTY::Prompt::Reader::Codes.keys[:down])
|
32
32
|
end
|
33
33
|
|
34
34
|
def expected_successful_configuration
|
@@ -36,7 +36,7 @@ module InstallerHelper
|
|
36
36
|
expected_output('What database do you want use?')
|
37
37
|
expected_output('‣ MySQL')
|
38
38
|
|
39
|
-
|
39
|
+
go_down
|
40
40
|
expected_output('‣ PostgreSQL')
|
41
41
|
select_choice
|
42
42
|
|
data/spec/lib/install_spec.rb
CHANGED
@@ -56,7 +56,7 @@ RSpec.describe RedmineInstaller::Install, command: 'install' do
|
|
56
56
|
expected_output('Path to redmine root:')
|
57
57
|
write(@redmine_root)
|
58
58
|
|
59
|
-
expected_output_in('Downloading redmine
|
59
|
+
expected_output_in('Downloading http://www.redmine.org/releases/redmine-3.1.1.zip', 30)
|
60
60
|
expected_output('Extracting redmine package')
|
61
61
|
|
62
62
|
expected_successful_configuration
|
@@ -76,8 +76,8 @@ RSpec.describe RedmineInstaller::Install, command: 'install' do
|
|
76
76
|
expected_output('Gemfile not found')
|
77
77
|
expected_output('‣ Try again')
|
78
78
|
|
79
|
-
|
80
|
-
|
79
|
+
go_down
|
80
|
+
go_down
|
81
81
|
expected_output('‣ Cancel')
|
82
82
|
write(' ')
|
83
83
|
|
@@ -88,8 +88,7 @@ RSpec.describe RedmineInstaller::Install, command: 'install' do
|
|
88
88
|
write(@redmine_root)
|
89
89
|
|
90
90
|
expected_output('Creating database configuration')
|
91
|
-
|
92
|
-
write(TTY::Prompt::Reader::Codes::KEY_DOWN)
|
91
|
+
go_down
|
93
92
|
expected_output('‣ PostgreSQL')
|
94
93
|
write(' ')
|
95
94
|
|
@@ -109,12 +108,12 @@ RSpec.describe RedmineInstaller::Install, command: 'install' do
|
|
109
108
|
expected_output('Migration end with error')
|
110
109
|
expected_output('‣ Try again')
|
111
110
|
|
112
|
-
|
113
|
-
|
111
|
+
go_down
|
112
|
+
go_down
|
114
113
|
expected_output('‣ Change database configuration')
|
115
114
|
write(' ')
|
116
115
|
|
117
|
-
|
116
|
+
go_down
|
118
117
|
expected_output('‣ PostgreSQL')
|
119
118
|
write(' ')
|
120
119
|
|
data/spec/lib/upgrade_spec.rb
CHANGED
@@ -65,8 +65,8 @@ RSpec.describe RedmineInstaller::Upgrade, :install_first, command: 'upgrade' do
|
|
65
65
|
|
66
66
|
wait_for_stdin_buffer
|
67
67
|
|
68
|
-
|
69
|
-
|
68
|
+
go_down
|
69
|
+
go_down
|
70
70
|
expected_output('‣ Nothing')
|
71
71
|
select_choice
|
72
72
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redmine-installer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.
|
4
|
+
version: 2.0.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ondřej Moravčík
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: commander
|
@@ -30,14 +30,14 @@ dependencies:
|
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 0.
|
33
|
+
version: 0.11.0
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 0.
|
40
|
+
version: 0.11.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: tty-spinner
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|