redmine-installer 2.0.0.rc1 → 2.0.0.rc2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|