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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 22ee60b5ea969b4287d629fd536e57d59ef15674
4
- data.tar.gz: aa29dc2561c8f9feaecd3ca005c443dbe4f32b10
3
+ metadata.gz: 26158b437ec271b8119c49fefe9d6667f0606b51
4
+ data.tar.gz: 39ee0b39018f4ef9d87a136c830db545ce1529a9
5
5
  SHA512:
6
- metadata.gz: 833e0b691d62ac3c0016d41958247ee1a58995fc8ee720cf8d1cfa31d6bfba3a6f6b75032bb51cb8bb5df1a6e73117f94e837a11bd8e8067401a36fd048d6464
7
- data.tar.gz: 5e10b97774c463b927f87230fedfaa10070392cfccc8661f520563e3ba8af364d81f911258a9add411354046abc16b4c3b1d748762b2ef439a16538cab5653ad
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 = download_redmine($1)
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 download_redmine(version)
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 redmine #{version}"
109
+ error "Cannot download #{uri}"
96
110
  end
97
111
 
98
- print_title("Downloading redmine #{version}")
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("Redmine #{version} downloaded")
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))
@@ -1,3 +1,3 @@
1
1
  module RedmineInstaller
2
- VERSION = '2.0.0.rc1'
2
+ VERSION = '2.0.0.rc2'
3
3
  end
@@ -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.10.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'
@@ -28,7 +28,7 @@ module InstallerHelper
28
28
  end
29
29
 
30
30
  def go_down
31
- write(TTY::Prompt::Reader::Codes::KEY_DOWN)
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
- write(TTY::Prompt::Reader::Codes::KEY_DOWN)
39
+ go_down
40
40
  expected_output('‣ PostgreSQL')
41
41
  select_choice
42
42
 
@@ -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 3.1.1', 20)
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
- write(TTY::Prompt::Reader::Codes::KEY_DOWN)
80
- write(TTY::Prompt::Reader::Codes::KEY_DOWN)
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
- write(TTY::Prompt::Reader::Codes::KEY_DOWN)
113
- write(TTY::Prompt::Reader::Codes::KEY_DOWN)
111
+ go_down
112
+ go_down
114
113
  expected_output('‣ Change database configuration')
115
114
  write(' ')
116
115
 
117
- write(TTY::Prompt::Reader::Codes::KEY_DOWN)
116
+ go_down
118
117
  expected_output('‣ PostgreSQL')
119
118
  write(' ')
120
119
 
@@ -65,8 +65,8 @@ RSpec.describe RedmineInstaller::Upgrade, :install_first, command: 'upgrade' do
65
65
 
66
66
  wait_for_stdin_buffer
67
67
 
68
- write(TTY::Prompt::Reader::Codes::KEY_DOWN)
69
- write(TTY::Prompt::Reader::Codes::KEY_DOWN)
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.rc1
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-01-06 00:00:00.000000000 Z
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.10.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.10.0
40
+ version: 0.11.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: tty-spinner
43
43
  requirement: !ruby/object:Gem::Requirement