redmine-installer 2.3.2 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.dockerignore +8 -0
- data/.gitignore +2 -2
- data/CHANGELOG.md +17 -0
- data/Dockerfile +13 -0
- data/README.md +27 -19
- data/gems.locked +76 -0
- data/gems.rb +1 -0
- data/lib/redmine-installer/cli.rb +30 -10
- data/lib/redmine-installer/command.rb +1 -1
- data/lib/redmine-installer/database.rb +2 -2
- data/lib/redmine-installer/easycheck.rb +1 -1
- data/lib/redmine-installer/environment.rb +14 -2
- data/lib/redmine-installer/package.rb +4 -4
- data/lib/redmine-installer/package_config.rb +1 -1
- data/lib/redmine-installer/profile.rb +2 -2
- data/lib/redmine-installer/redmine.rb +13 -2
- data/lib/redmine-installer/version.rb +3 -1
- data/lib/redmine-installer.rb +1 -1
- data/redmine-installer.gemspec +20 -22
- metadata +58 -45
- data/.travis.yml +0 -7
- data/spec/custom_matchers.rb +0 -21
- data/spec/installer_helper.rb +0 -204
- data/spec/installer_process.rb +0 -94
- data/spec/lib/backup_restore_spec.rb +0 -81
- data/spec/lib/install_spec.rb +0 -164
- data/spec/lib/upgrade_spec.rb +0 -201
- data/spec/packages_helper.rb +0 -27
- data/spec/shared_contexts.rb +0 -13
- data/spec/spec_helper.rb +0 -51
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99303f819bcacb4a242b3a5020028845867655202a15cb3299b3253a9efdbcd0
|
4
|
+
data.tar.gz: 4cc1c31ec92f8bdb812af49b1d47744fc079ca91252f7acfa4c3dd35a2b61471
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '09961ded47146661478d1263192c2c3ff0d72f1bfbdbb320ac4b3b77a6c41e63b586cf750faa2be4b38774f339c1691dc1ca7e902a91ba73770aed6cfe012102'
|
7
|
+
data.tar.gz: dee77d5369431c9df0d0425ba078e266cc5826c8ed101ca36711c05ae09c333088fe621acf48043bbf0e4bd93504966e2b2d17e9ac30c5b706b17709ea34b413
|
data/.dockerignore
ADDED
data/.gitignore
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
/.gemtags
|
2
2
|
/.tags
|
3
|
+
/.idea
|
3
4
|
*.gem
|
4
5
|
*.rbc
|
5
6
|
.bundle
|
6
7
|
.config
|
7
8
|
.yardoc
|
8
|
-
Gemfile.lock
|
9
9
|
InstalledFiles
|
10
10
|
_yardoc
|
11
11
|
coverage
|
@@ -27,4 +27,4 @@ test/*
|
|
27
27
|
/redmine-installer-err
|
28
28
|
/redmine-installer-out
|
29
29
|
/redmine
|
30
|
-
/
|
30
|
+
/vendor/*
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,22 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
|
4
|
+
## [3.0.0] - 2022-12-13
|
5
|
+
### Added
|
6
|
+
- docker-compose for testing [#37](https://github.com/easyredmine/redmine-installer/pull/37)
|
7
|
+
- .github workflow for CI
|
8
|
+
- `env_check` for test server environment
|
9
|
+
### Fixed
|
10
|
+
- ruby 3.x support [#35](https://github.com/easyredmine/redmine-installer/pull/35)
|
11
|
+
- Psych aliases while parsing `database.yml`
|
12
|
+
### Changed
|
13
|
+
- required ruby version = 3.1.2 [#36](https://github.com/easyredmine/redmine-installer/pull/36)
|
14
|
+
- required redmine version = 5.0.4+ [#36](https://github.com/easyredmine/redmine-installer/pull/36)
|
15
|
+
|
16
|
+
## [2.4.0] - 2022-09-07
|
17
|
+
### Added
|
18
|
+
- allow the administrator to manually empty the root directory [#33](https://github.com/easyredmine/redmine-installer/pull/33)
|
19
|
+
|
3
20
|
## [2.3.0.beta] - 2019-06-10
|
4
21
|
|
5
22
|
### Added
|
data/Dockerfile
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
FROM ruby:3.1.2-bullseye
|
2
|
+
LABEL org.opencontainers.image.authors="support@easysoftware.com"
|
3
|
+
RUN apt-get update && apt-get -y install lsb-release wget curl vim
|
4
|
+
RUN wget https://repo.percona.com/apt/percona-release_latest.$(lsb_release -sc)_all.deb -O percona-release_latest_all.deb &&\
|
5
|
+
dpkg -i percona-release_latest_all.deb &&\
|
6
|
+
percona-release setup ps80 &&\
|
7
|
+
apt-get update && apt-get install -y libperconaserverclient21-dev percona-server-client
|
8
|
+
WORKDIR /gem
|
9
|
+
VOLUME ["/gem/vendor/"]
|
10
|
+
COPY . ./
|
11
|
+
RUN bundle config set deployment 'true'
|
12
|
+
RUN bundle install
|
13
|
+
CMD ["bundle", "exec", "rspec"]
|
data/README.md
CHANGED
@@ -1,48 +1,46 @@
|
|
1
1
|
# Redmine installer
|
2
2
|
|
3
|
-
Easy way hot to install/upgrade Redmine,
|
3
|
+
Easy way hot to install/upgrade Redmine, Easy Redmine or Easy Project.
|
4
4
|
|
5
5
|
Please do not run installer on background. It may happen that process will be paused by some event. For example database may require enter password during backuping database.
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
Add this line to your application's Gemfile:
|
10
|
-
|
11
|
-
```
|
12
|
-
gem 'redmine-installer'
|
13
|
-
```
|
7
|
+
> ⚠️ Current version support only **ruby 3.1.2**, **Percona 8** as DB server and **redmine 5.0.3+**
|
14
8
|
|
15
|
-
|
9
|
+
Version **v3.x** is designed primarily for work with Easy Redmine / Easy Project **v12.x**.
|
16
10
|
|
17
|
-
|
18
|
-
$ bundle
|
19
|
-
```
|
20
|
-
|
21
|
-
Or install it yourself as:
|
11
|
+
## Installation
|
22
12
|
|
23
|
-
|
24
|
-
|
13
|
+
Install tool into your server environment by:
|
14
|
+
```bash
|
15
|
+
gem install redmine-installer
|
25
16
|
```
|
26
17
|
|
18
|
+
> ⚠️ Version `v3.0.0` and higher require ruby 3.1.2 and its designed for Easy Redmine / Easy Project v12 and Redmine 5.0.3+ respectively.
|
27
19
|
## Examples
|
28
20
|
|
29
21
|
To display global documentation for installer.
|
30
22
|
|
31
|
-
```
|
23
|
+
```bash
|
32
24
|
redmine help
|
33
25
|
```
|
34
26
|
|
35
27
|
You can also check more detailed documentation for each command.
|
36
28
|
|
37
|
-
```
|
29
|
+
```bash
|
38
30
|
redmine help [COMMAND]
|
39
31
|
```
|
40
32
|
|
33
|
+
### Environment checker
|
34
|
+
Check your server environment if it meets our requirements for best Easy Redmine experience.
|
35
|
+
```bash
|
36
|
+
redmine env_check
|
37
|
+
```
|
38
|
+
|
41
39
|
### Installing
|
42
40
|
|
43
41
|
Create new project on empty directory. All argument are optional. Directory should be empty because installer delete all content for ensuring correct installation. If directory does not exist, current user must have privileges to create it.
|
44
42
|
|
45
|
-
```
|
43
|
+
```bash
|
46
44
|
redmine help install
|
47
45
|
redmine install [PACKAGE PATH or URL] [REDMINE_ROOT] [options]
|
48
46
|
```
|
@@ -129,3 +127,13 @@ Examples:
|
|
129
127
|
|
130
128
|
Restore database db.dump for redmine in /srv/redmine
|
131
129
|
- `redmine restore-db db.dump /srv/redmine`
|
130
|
+
|
131
|
+
## Testing
|
132
|
+
|
133
|
+
Just run:
|
134
|
+
```bash
|
135
|
+
docker compose up --build --exit-code-from redmine_installer
|
136
|
+
```
|
137
|
+
This will build docker image from current code and run tests against _percona8_.
|
138
|
+
|
139
|
+
note: Require Docker of course.
|
data/gems.locked
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
redmine-installer (3.0.0)
|
5
|
+
bundler (>= 2.3.7)
|
6
|
+
commander
|
7
|
+
pastel (~> 0.8.0)
|
8
|
+
rubyzip
|
9
|
+
tty-progressbar (~> 0.18.2)
|
10
|
+
tty-prompt (~> 0.23.1)
|
11
|
+
tty-spinner (~> 0.8.0)
|
12
|
+
|
13
|
+
GEM
|
14
|
+
remote: https://rubygems.org/
|
15
|
+
specs:
|
16
|
+
childprocess (4.1.0)
|
17
|
+
coderay (1.1.3)
|
18
|
+
commander (4.6.0)
|
19
|
+
highline (~> 2.0.0)
|
20
|
+
diff-lcs (1.5.0)
|
21
|
+
highline (2.0.3)
|
22
|
+
method_source (1.0.0)
|
23
|
+
pastel (0.8.0)
|
24
|
+
tty-color (~> 0.5)
|
25
|
+
pry (0.14.1)
|
26
|
+
coderay (~> 1.1)
|
27
|
+
method_source (~> 1.0)
|
28
|
+
rake (13.0.6)
|
29
|
+
rspec (3.11.0)
|
30
|
+
rspec-core (~> 3.11.0)
|
31
|
+
rspec-expectations (~> 3.11.0)
|
32
|
+
rspec-mocks (~> 3.11.0)
|
33
|
+
rspec-core (3.11.0)
|
34
|
+
rspec-support (~> 3.11.0)
|
35
|
+
rspec-expectations (3.11.1)
|
36
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
37
|
+
rspec-support (~> 3.11.0)
|
38
|
+
rspec-mocks (3.11.2)
|
39
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
40
|
+
rspec-support (~> 3.11.0)
|
41
|
+
rspec-support (3.11.1)
|
42
|
+
rubyzip (2.3.2)
|
43
|
+
strings-ansi (0.2.0)
|
44
|
+
tty-color (0.6.0)
|
45
|
+
tty-cursor (0.7.1)
|
46
|
+
tty-progressbar (0.18.2)
|
47
|
+
strings-ansi (~> 0.2)
|
48
|
+
tty-cursor (~> 0.7)
|
49
|
+
tty-screen (~> 0.8)
|
50
|
+
unicode-display_width (>= 1.6, < 3.0)
|
51
|
+
tty-prompt (0.23.1)
|
52
|
+
pastel (~> 0.8)
|
53
|
+
tty-reader (~> 0.8)
|
54
|
+
tty-reader (0.9.0)
|
55
|
+
tty-cursor (~> 0.7)
|
56
|
+
tty-screen (~> 0.8)
|
57
|
+
wisper (~> 2.0)
|
58
|
+
tty-screen (0.8.1)
|
59
|
+
tty-spinner (0.8.0)
|
60
|
+
tty-cursor (>= 0.5.0)
|
61
|
+
unicode-display_width (2.3.0)
|
62
|
+
wisper (2.0.1)
|
63
|
+
|
64
|
+
PLATFORMS
|
65
|
+
x86_64-darwin-21
|
66
|
+
x86_64-linux
|
67
|
+
|
68
|
+
DEPENDENCIES
|
69
|
+
childprocess (~> 4.1.0)
|
70
|
+
pry
|
71
|
+
rake
|
72
|
+
redmine-installer!
|
73
|
+
rspec (~> 3.11.0)
|
74
|
+
|
75
|
+
BUNDLED WITH
|
76
|
+
2.3.22
|
data/gems.rb
CHANGED
@@ -17,7 +17,7 @@ module RedmineInstaller
|
|
17
17
|
program :version, RedmineInstaller::VERSION
|
18
18
|
program :description, 'Easy way how install/upgrade redmine or plugin.'
|
19
19
|
|
20
|
-
global_option('-d', '--debug', 'Logging message to stdout'){ $DEBUG = true }
|
20
|
+
global_option('-d', '--debug', 'Logging message to stdout') { $DEBUG = true }
|
21
21
|
global_option('-s', '--silent', 'Be less version in output') { $SILENT_MODE = true }
|
22
22
|
global_option('-e', '--env', 'For backward compatibility. Production is now always use.')
|
23
23
|
global_option('--run-easycheck', 'Run easycheck.sh from https://github.com/easyredmine/easy_server_requirements_check') do
|
@@ -26,6 +26,27 @@ module RedmineInstaller
|
|
26
26
|
|
27
27
|
default_command :help
|
28
28
|
|
29
|
+
# --- Environment checker -----------------------------------------------
|
30
|
+
# This command is very specify to Easy Redmine
|
31
|
+
command :env_check do |c|
|
32
|
+
c.syntax = 'env_check'
|
33
|
+
c.description = <<~DESC
|
34
|
+
Check current environment if it meet requirements for Easy Redmine / Easy Project.
|
35
|
+
|
36
|
+
See: https://www.easyredmine.com/documentation-of-easy-redmine/article/hardware-and-software-requirements-for-the-server-solution
|
37
|
+
DESC
|
38
|
+
c.action do |_args|
|
39
|
+
task = RedmineInstaller::Task.new
|
40
|
+
RedmineInstaller::Environment.new(task).check
|
41
|
+
puts task.pastel.green "OK"
|
42
|
+
rescue StandardError => e
|
43
|
+
puts task.pastel.red e.message
|
44
|
+
|
45
|
+
puts "\n\nCheck: https://www.easyredmine.com/documentation-of-easy-redmine/article/hardware-and-software-requirements-for-the-server-solution#Software%20requirements for more info."
|
46
|
+
end
|
47
|
+
end
|
48
|
+
|
49
|
+
alias_command :check, :env_check
|
29
50
|
|
30
51
|
# --- Install -----------------------------------------------------------
|
31
52
|
command :install do |c|
|
@@ -48,12 +69,11 @@ module RedmineInstaller
|
|
48
69
|
c.action do |args, options|
|
49
70
|
options.default(enable_user_root: false)
|
50
71
|
|
51
|
-
RedmineInstaller::Install.new(args[0], args[1], options.__hash__).run
|
72
|
+
RedmineInstaller::Install.new(args[0], args[1], **options.__hash__).run
|
52
73
|
end
|
53
74
|
end
|
54
75
|
alias_command :i, :install
|
55
76
|
|
56
|
-
|
57
77
|
# --- Upgrade -----------------------------------------------------------
|
58
78
|
command :upgrade do |c|
|
59
79
|
c.syntax = 'upgrade [PACKAGE] [REDMINE_ROOT] [options]'
|
@@ -77,12 +97,11 @@ module RedmineInstaller
|
|
77
97
|
c.action do |args, options|
|
78
98
|
options.default(enable_user_root: false, copy_files_with_symlink: false)
|
79
99
|
|
80
|
-
RedmineInstaller::Upgrade.new(args[0], args[1], options.__hash__).run
|
100
|
+
RedmineInstaller::Upgrade.new(args[0], args[1], **options.__hash__).run
|
81
101
|
end
|
82
102
|
end
|
83
103
|
alias_command :u, :upgrade
|
84
104
|
|
85
|
-
|
86
105
|
# --- Verify log --------------------------------------------------------
|
87
106
|
command :'verify-log' do |c|
|
88
107
|
c.syntax = 'verify-log LOGFILE'
|
@@ -96,7 +115,6 @@ module RedmineInstaller
|
|
96
115
|
end
|
97
116
|
end
|
98
117
|
|
99
|
-
|
100
118
|
# --- Backup ------------------------------------------------------------
|
101
119
|
command :backup do |c|
|
102
120
|
c.syntax = 'backup [REDMINE_ROOT]'
|
@@ -105,13 +123,16 @@ module RedmineInstaller
|
|
105
123
|
c.example 'Backup',
|
106
124
|
'redmine backup /srv/redmine'
|
107
125
|
|
108
|
-
c.
|
126
|
+
c.option '--enable-user-root', 'Skip root as root validation' # just for consistency
|
127
|
+
|
128
|
+
c.action do |args, options|
|
129
|
+
options.default(enable_user_root: false)
|
130
|
+
|
109
131
|
RedmineInstaller::Backup.new(args[0]).run
|
110
132
|
end
|
111
133
|
end
|
112
134
|
alias_command :b, :backup
|
113
135
|
|
114
|
-
|
115
136
|
# --- Restore db --------------------------------------------------------
|
116
137
|
command :'restore-db' do |c|
|
117
138
|
c.syntax = 'restore-db DATABASE_DUMP [REDMINE_ROOT] [options]'
|
@@ -129,7 +150,6 @@ module RedmineInstaller
|
|
129
150
|
end
|
130
151
|
end
|
131
152
|
|
132
|
-
|
133
153
|
run!
|
134
154
|
end
|
135
155
|
|
@@ -137,7 +157,7 @@ module RedmineInstaller
|
|
137
157
|
def parse_keep_options(values)
|
138
158
|
proxy_options = Commander::Runner.instance.active_command.proxy_options
|
139
159
|
|
140
|
-
saved = proxy_options.find{|switch, _| switch == :keep }
|
160
|
+
saved = proxy_options.find { |switch, _| switch == :keep }
|
141
161
|
if saved
|
142
162
|
saved[1].concat(values)
|
143
163
|
else
|
@@ -21,7 +21,7 @@ module RedmineInstaller
|
|
21
21
|
error "Database configuration files does not exist on #{redmine.root}."
|
22
22
|
end
|
23
23
|
|
24
|
-
definitions = YAML.load_file(redmine.database_yml_path)
|
24
|
+
definitions = YAML.load_file(redmine.database_yml_path, aliases: true)
|
25
25
|
definition = definitions['production']
|
26
26
|
|
27
27
|
unless definition.is_a?(Hash)
|
@@ -60,7 +60,7 @@ module RedmineInstaller
|
|
60
60
|
@host = prompt.ask('Host:', default: 'localhost', required: true)
|
61
61
|
@username = prompt.ask('Username:', default: '')
|
62
62
|
@password = prompt.mask('Password:', default: '')
|
63
|
-
@encoding = prompt.ask('Encoding:', default: '
|
63
|
+
@encoding = prompt.ask('Encoding:', default: 'utf8mb4', required: true)
|
64
64
|
@port = prompt.ask('Port:', default: default_port, convert: lambda(&:to_i), required: true)
|
65
65
|
end
|
66
66
|
|
@@ -7,7 +7,7 @@ module RedmineInstaller
|
|
7
7
|
EASYCHECK_SH = 'https://raw.githubusercontent.com/easyredmine/easy_server_requirements_check/master/easycheck.sh'
|
8
8
|
|
9
9
|
def self.run
|
10
|
-
Bundler.
|
10
|
+
Bundler.with_unbundled_env do
|
11
11
|
if Kernel.system('which', 'wget')
|
12
12
|
Open3.pipeline(['wget', EASYCHECK_SH, '-O', '-', '--quiet'], 'bash')
|
13
13
|
|
@@ -7,15 +7,27 @@ module RedmineInstaller
|
|
7
7
|
end
|
8
8
|
|
9
9
|
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new(RedmineInstaller::MIN_SUPPORTED_RUBY)
|
10
|
-
error "You are using unsupported ruby. Please install
|
10
|
+
error "You are using unsupported ruby. Please install ruby v#{RedmineInstaller::MIN_SUPPORTED_RUBY}."
|
11
11
|
end
|
12
12
|
|
13
|
-
|
13
|
+
if mysql_version =~ /^mysql\s+Ver\s(8\.\d)/
|
14
|
+
puts pastel.on_red 'WARNING: It seems you are using MySQL 8.x, but ER / EP supported only Percona 8 db.'
|
15
|
+
else
|
16
|
+
error 'Only Percona 8.x db server is supported!.'
|
17
|
+
end
|
18
|
+
|
19
|
+
logger.info 'Environment checked'
|
14
20
|
end
|
15
21
|
|
16
22
|
def user_is_root?
|
17
23
|
Process.euid == 0
|
18
24
|
end
|
19
25
|
|
26
|
+
def mysql_version
|
27
|
+
`mysql --version`
|
28
|
+
rescue StandardError
|
29
|
+
""
|
30
|
+
end
|
31
|
+
|
20
32
|
end
|
21
33
|
end
|
@@ -86,23 +86,23 @@ module RedmineInstaller
|
|
86
86
|
|
87
87
|
def valid_url?(string)
|
88
88
|
uri = URI.parse(string)
|
89
|
-
[
|
89
|
+
%w[http https].include?(uri.scheme)
|
90
90
|
rescue URI::BadURIError, URI::InvalidURIError
|
91
91
|
false
|
92
92
|
end
|
93
93
|
|
94
94
|
def download_redmine_version(version)
|
95
|
-
url = "
|
95
|
+
url = "https://www.redmine.org/releases/redmine-#{version}.zip"
|
96
96
|
download_from_url(url)
|
97
97
|
end
|
98
98
|
|
99
99
|
def download_from_url(url)
|
100
100
|
uri = URI.parse(url)
|
101
101
|
|
102
|
-
@temp_file = Tempfile.new([
|
102
|
+
@temp_file = Tempfile.new(%w[redmine .zip])
|
103
103
|
@temp_file.binmode
|
104
104
|
|
105
|
-
Net::HTTP.start(uri.host, uri.port) do |http|
|
105
|
+
Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
|
106
106
|
head = http.request_head(uri)
|
107
107
|
|
108
108
|
unless head.is_a?(Net::HTTPSuccess)
|
@@ -6,7 +6,7 @@ module RedmineInstaller
|
|
6
6
|
PROFILES_FILE = File.join(Dir.home, '.redmine-installer-profiles.yml')
|
7
7
|
|
8
8
|
def self.get!(profile_id)
|
9
|
-
data = YAML.load_file(PROFILES_FILE) rescue nil
|
9
|
+
data = YAML.load_file(PROFILES_FILE, aliases: true) rescue nil
|
10
10
|
|
11
11
|
if data.is_a?(Hash) && data.has_key?(profile_id)
|
12
12
|
Profile.new(profile_id, data[profile_id])
|
@@ -25,7 +25,7 @@ module RedmineInstaller
|
|
25
25
|
def save
|
26
26
|
FileUtils.touch(PROFILES_FILE)
|
27
27
|
|
28
|
-
all_data = YAML.load_file(PROFILES_FILE)
|
28
|
+
all_data = YAML.load_file(PROFILES_FILE, aliases: true)
|
29
29
|
all_data = {} unless all_data.is_a?(Hash)
|
30
30
|
|
31
31
|
@id ||= all_data.keys.last.to_i + 1
|
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'find'
|
2
|
+
require 'io/console'
|
2
3
|
|
3
4
|
module RedmineInstaller
|
4
5
|
class Redmine < TaskModule
|
@@ -279,7 +280,17 @@ module RedmineInstaller
|
|
279
280
|
next if entry == '.' || entry == '..'
|
280
281
|
next if entry == FILES_DIR && task.options.copy_files_with_symlink
|
281
282
|
|
282
|
-
|
283
|
+
begin
|
284
|
+
FileUtils.remove_entry_secure(entry)
|
285
|
+
rescue
|
286
|
+
if task.options.copy_files_with_symlink
|
287
|
+
print_title('Cannot automatically empty ' + root + '. Please manually empty this directory (except for ' + root + '/' + FILES_DIR + ') and then hit any key to continue...')
|
288
|
+
else
|
289
|
+
print_title('Cannot automatically empty ' + root + '. Please manually empty this directory and then hit any key to continue...')
|
290
|
+
end
|
291
|
+
STDIN.getch
|
292
|
+
break
|
293
|
+
end
|
283
294
|
end
|
284
295
|
end
|
285
296
|
|
@@ -294,7 +305,7 @@ module RedmineInstaller
|
|
294
305
|
bundle_index = File.join(Dir.pwd, '.bundle/plugin/index')
|
295
306
|
|
296
307
|
if File.exist?(bundle_index)
|
297
|
-
index = YAML.load_file(bundle_index)
|
308
|
+
index = YAML.load_file(bundle_index, aliases: true)
|
298
309
|
|
299
310
|
# { load_paths: { PLUGIN_NAME: *PATHS } }
|
300
311
|
#
|
data/lib/redmine-installer.rb
CHANGED
data/redmine-installer.gemspec
CHANGED
@@ -1,37 +1,35 @@
|
|
1
|
-
# coding: utf-8
|
2
|
-
|
3
1
|
lib = File.expand_path('lib', __dir__)
|
4
2
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
3
|
|
6
4
|
require 'redmine-installer/version'
|
7
5
|
|
8
6
|
Gem::Specification.new do |spec|
|
9
|
-
spec.name
|
10
|
-
spec.version
|
11
|
-
spec.authors
|
12
|
-
spec.email
|
13
|
-
spec.summary
|
14
|
-
spec.description
|
15
|
-
spec.homepage
|
16
|
-
spec.license
|
17
|
-
|
18
|
-
files = `git ls-files -z`.split("\x0")
|
19
|
-
files
|
20
|
-
|
21
|
-
spec.
|
22
|
-
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
23
|
-
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
7
|
+
spec.name = 'redmine-installer'
|
8
|
+
spec.version = RedmineInstaller::VERSION
|
9
|
+
spec.authors = ['Ondřej Moravčík', 'Easy Software Ltd.']
|
10
|
+
spec.email = ['developers@easysoftware.com']
|
11
|
+
spec.summary = %q{Easy way how install/upgrade Redmine, EasyRedmine or EasyProject.}
|
12
|
+
spec.description = %q{}
|
13
|
+
spec.homepage = 'https://github.com/easyredmine/redmine-installer'
|
14
|
+
spec.license = 'MIT'
|
15
|
+
|
16
|
+
files = `git ls-files -z`.split("\x0") - Dir.glob("{spec/**/*,docker-compose.yml,.github/**/*}")
|
17
|
+
spec.files = files
|
18
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
19
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
24
20
|
spec.require_paths = ['lib']
|
25
21
|
|
26
|
-
spec.required_ruby_version = '
|
22
|
+
spec.required_ruby_version = '3.1.2'
|
27
23
|
|
24
|
+
spec.add_runtime_dependency 'bundler', '>= 2.3.7'
|
28
25
|
spec.add_runtime_dependency 'commander'
|
26
|
+
spec.add_runtime_dependency 'pastel', '~> 0.8.0'
|
29
27
|
spec.add_runtime_dependency 'rubyzip'
|
30
|
-
spec.add_runtime_dependency '
|
31
|
-
spec.add_runtime_dependency '
|
32
|
-
spec.add_runtime_dependency 'tty-prompt', '~> 0.16.1'
|
28
|
+
spec.add_runtime_dependency 'tty-progressbar', '~> 0.18.2'
|
29
|
+
spec.add_runtime_dependency 'tty-prompt', '~> 0.23.1'
|
33
30
|
spec.add_runtime_dependency 'tty-spinner', '~> 0.8.0'
|
34
|
-
spec.add_runtime_dependency 'tty-progressbar', '~> 0.15.0'
|
35
31
|
|
32
|
+
spec.add_development_dependency 'childprocess', '~> 4.1.0'
|
36
33
|
spec.add_development_dependency 'rake'
|
34
|
+
spec.add_development_dependency 'rspec', '~> 3.11.0'
|
37
35
|
end
|