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 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