1
1
class MigrateParameters < ActiveRecord ::Migration
2
- def self . up
3
- new_setting = { }
4
2
3
+ def self . up
5
4
## Prepare default values in case we install Redmine from scratch
6
- # Legacy settings
7
- new_setting [ :gitolite_user ] = 'git'
8
- new_setting [ :gitolite_server_port ] = '22'
9
- new_setting [ :gitolite_ssh_private_key ] = File . join ( Rails . root , 'plugins' , 'redmine_git_hosting' , 'ssh_keys' , 'redmine_gitolite_admin_id_rsa' ) . to_s
10
- new_setting [ :gitolite_ssh_public_key ] = File . join ( Rails . root , 'plugins' , 'redmine_git_hosting' , 'ssh_keys' , 'redmine_gitolite_admin_id_rsa.pub' ) . to_s
11
-
12
- new_setting [ :gitolite_global_storage_dir ] = 'repositories/'
13
- new_setting [ :gitolite_redmine_storage_dir ] = ''
14
- new_setting [ :gitolite_recycle_bin_dir ] = 'recycle_bin/'
15
-
16
- new_setting [ :gitolite_temp_dir ] = File . join ( Rails . root , 'tmp' , 'redmine_git_hosting' ) . to_s
17
- new_setting [ :gitolite_script_dir ] = './'
18
- new_setting [ :gitolite_timeout ] = 10
19
- new_setting [ :gitolite_config_file ] = 'gitolite.conf'
20
- new_setting [ :gitolite_config_has_admin_key ] = true
21
- new_setting [ :gitolite_recycle_bin_expiration_time ] = 24.0
22
-
23
- new_setting [ :gitolite_hooks_debug ] = true
24
- new_setting [ :gitolite_force_hooks_update ] = true
25
- new_setting [ :gitolite_hooks_are_asynchronous ] = false
26
-
27
- new_setting [ :gitolite_cache_max_time ] = 86400
28
- new_setting [ :gitolite_cache_max_size ] = 16
29
- new_setting [ :gitolite_cache_max_elements ] = 2000
30
-
31
- new_setting [ :ssh_server_domain ] = RedmineGitolite ::Config . my_root_url
32
- new_setting [ :http_server_domain ] = RedmineGitolite ::Config . my_root_url
33
- new_setting [ :https_server_domain ] = ''
34
- new_setting [ :http_server_subdir ] = ''
35
- new_setting [ :show_repositories_url ] = true
36
-
37
- new_setting [ :gitolite_daemon_by_default ] = false
38
- new_setting [ :gitolite_http_by_default ] = 1
39
-
40
- new_setting [ :all_projects_use_git ] = false
41
- new_setting [ :delete_git_repositories ] = false
42
- new_setting [ :hierarchical_organisation ] = false
43
- new_setting [ :unique_repo_identifier ] = true
44
-
45
- # New features settings
46
- new_setting [ :gitolite_log_level ] = 'info'
47
- new_setting [ :gitolite_log_split ] = false
48
- new_setting [ :gitolite_resync_all ] = false
49
-
50
- new_setting [ :gitolite_notify_by_default ] = true
51
- new_setting [ :gitolite_notify_global_prefix ] = '[REDMINE]'
52
- new_setting [ :gitolite_notify_global_sender_address ] = Setting . mail_from . to_s . strip . downcase
53
- new_setting [ :gitolite_notify_global_include ] = [ ]
54
- new_setting [ :gitolite_notify_global_exclude ] = [ ]
55
-
5
+ new_setting = {
6
+ # Legacy settings
7
+ :gitolite_user => 'git' ,
8
+ :gitolite_server_port => '22' ,
9
+ :gitolite_ssh_private_key => Rails . root . join ( 'plugins' , 'redmine_git_hosting' , 'ssh_keys' , 'redmine_gitolite_admin_id_rsa' ) . to_s ,
10
+ :gitolite_ssh_public_key => Rails . root . join ( 'plugins' , 'redmine_git_hosting' , 'ssh_keys' , 'redmine_gitolite_admin_id_rsa.pub' ) . to_s ,
11
+
12
+ :gitolite_global_storage_dir => 'repositories/' ,
13
+ :gitolite_redmine_storage_dir => '' ,
14
+ :gitolite_recycle_bin_dir => 'recycle_bin/' ,
15
+
16
+ :gitolite_temp_dir => Rails . root . join ( 'tmp' , 'redmine_git_hosting' ) . to_s ,
17
+ :gitolite_scripts_dir => './' ,
18
+ :gitolite_timeout => '10' ,
19
+ :gitolite_config_file => 'gitolite.conf' ,
20
+ :gitolite_config_has_admin_key => 'true' ,
21
+ :gitolite_recycle_bin_expiration_time => '24.0' ,
22
+
23
+ :gitolite_hooks_debug => 'false' ,
24
+ :gitolite_force_hooks_update => 'true' ,
25
+ :gitolite_hooks_are_asynchronous => 'false' ,
26
+
27
+ :gitolite_cache_max_time => '86400' ,
28
+ :gitolite_cache_max_size => '16' ,
29
+ :gitolite_cache_max_elements => '2000' ,
30
+
31
+ :ssh_server_domain => 'localhost' ,
32
+ :http_server_domain => 'localhost' ,
33
+ :https_server_domain => '' ,
34
+ :http_server_subdir => '' ,
35
+ :show_repositories_url => 'true' ,
36
+
37
+ :gitolite_daemon_by_default => 'false' ,
38
+ :gitolite_http_by_default => '1' ,
39
+
40
+ :all_projects_use_git => 'false' ,
41
+ :delete_git_repositories => 'true' ,
42
+ :hierarchical_organisation => 'true' ,
43
+ :unique_repo_identifier => 'false' ,
44
+
45
+ # New features settings
46
+ :gitolite_log_level => 'info' ,
47
+ :gitolite_log_split => 'false' ,
48
+
49
+ :git_config_username => 'Redmine Git Hosting' ,
50
+ :git_config_email => '[email protected] ' ,
51
+
52
+ :gitolite_use_sidekiq => 'false' ,
53
+ :init_repositories_on_create => 'false' ,
54
+ :download_revision_enabled => 'true' ,
55
+ :gitolite_identifier_prefix => 'redmine_' ,
56
+
57
+ :gitolite_resync_all => 'false' ,
58
+
59
+ :gitolite_notify_by_default => 'false' ,
60
+ :gitolite_notify_global_prefix => '[REDMINE]' ,
61
+ :gitolite_notify_global_sender_address => '[email protected] ' ,
62
+ :gitolite_notify_global_include => [ ] ,
63
+ :gitolite_notify_global_exclude => [ ] ,
64
+ }
56
65
57
66
## Grab current values and update existing settings
58
- if !Setting [ : plugin_redmine_git_hosting] . nil?
59
- Setting [ : plugin_redmine_git_hosting] . each do |key , value |
67
+ if !Setting . plugin_redmine_git_hosting . nil?
68
+ Setting . plugin_redmine_git_hosting . each do |key , value |
60
69
case key
61
70
62
71
# Gitolite SSH Config
@@ -87,7 +96,7 @@ def self.up
87
96
new_setting [ :gitolite_temp_dir ] = value
88
97
89
98
when 'gitScriptDir' then
90
- new_setting [ :gitolite_script_dir ] = value
99
+ new_setting [ :gitolite_scripts_dir ] = value
91
100
92
101
when 'gitConfigFile' then
93
102
new_setting [ :gitolite_config_file ] = value
@@ -136,14 +145,15 @@ def self.up
136
145
new_setting [ :show_repositories_url ] = value
137
146
138
147
when 'gitDaemonDefault' then
139
- new_setting [ :gitolite_daemon_by_default ] = value
148
+ if value == 1
149
+ new_setting [ :gitolite_daemon_by_default ] = 'true'
150
+ else
151
+ new_setting [ :gitolite_daemon_by_default ] = 'false'
152
+ end
140
153
141
154
when 'gitHttpDefault' then
142
155
new_setting [ :gitolite_http_by_default ] = value
143
156
144
- when 'gitNotifyCIADefault' then
145
- new_setting [ :gitolite_notify_cia_by_default ] = value
146
-
147
157
# Redmine Config
148
158
when 'allProjectsUseGit' then
149
159
new_setting [ :all_projects_use_git ] = value
@@ -152,19 +162,28 @@ def self.up
152
162
new_setting [ :delete_git_repositories ] = value
153
163
154
164
when 'gitRepositoryHierarchy' then
155
- new_setting [ :hierarchical_organisation ] = value
156
-
157
- when 'gitRepositoryIdentUnique' then
158
- new_setting [ :unique_repo_identifier ] = value
165
+ if value == 'true'
166
+ new_setting [ :hierarchical_organisation ] = 'true'
167
+ new_setting [ :unique_repo_identifier ] = 'false'
168
+ else
169
+ new_setting [ :hierarchical_organisation ] = 'false'
170
+ new_setting [ :unique_repo_identifier ] = 'true'
171
+ end
159
172
160
173
end
161
174
end
162
175
end
163
176
164
- puts "Applying configuration update"
177
+ puts "Applying configuration update ... "
165
178
puts YAML ::dump ( new_setting )
166
179
167
- Setting [ :plugin_redmine_git_hosting ] = new_setting
168
- end
180
+ begin
181
+ Setting . plugin_redmine_git_hosting = new_setting
182
+ rescue => e
183
+ puts "Error : #{ e . message } "
184
+ else
185
+ puts "Done!"
186
+ end
169
187
188
+ end
170
189
end
0 commit comments