eac_tools 0.29.0 → 0.31.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (66) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +35 -29
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +2 -2
  5. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/{apache_host.rb → instances/apache_host.rb} +3 -1
  6. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base.rb +6 -5
  7. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/data_unit.rb +53 -0
  8. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/{rest_api.rb → instances/rest_api.rb} +3 -1
  9. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project_rename.rb +1 -1
  10. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/runners/base.rb +1 -1
  11. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update.rb +120 -0
  12. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/core_update.rb +3 -2
  13. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/version.rb +1 -1
  14. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec.rb +22 -0
  15. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec_files/apache_host_spec_no_ssl_content.conf +11 -0
  16. data/sub/avm-eac_redmine_base0/spec/spec_helper.rb +1 -0
  17. data/sub/avm-eac_ruby_base1/avm-eac_ruby_base1.gemspec +1 -1
  18. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/runners/base/lib_rename.rb +77 -0
  19. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/namespace_replacer.rb +55 -0
  20. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/sources/runners/update_dependencies_requirements.rb +21 -7
  21. data/sub/avm-eac_ruby_base1/lib/avm/eac_ruby_base1/version.rb +1 -1
  22. data/sub/avm-files/Gemfile +8 -0
  23. data/sub/avm-files/avm-files.gemspec +22 -0
  24. data/sub/avm-files/lib/avm/files/appendable/file_content.rb +24 -0
  25. data/sub/avm-files/lib/avm/files/appendable/plain_directory.rb +25 -0
  26. data/sub/avm-files/lib/avm/files/appendable/resource_base.rb +13 -0
  27. data/sub/avm-files/lib/avm/files/appendable/tar_output_command.rb +26 -0
  28. data/sub/avm-files/lib/avm/files/appendable/templatized_directory.rb +29 -0
  29. data/sub/avm-files/lib/avm/files/appendable.rb +55 -0
  30. data/sub/avm-files/lib/avm/files/appender.rb +11 -0
  31. data/sub/avm-files/lib/avm/files/deploy.rb +71 -0
  32. data/sub/avm-files/lib/avm/files/formatter/formats/base.rb +62 -0
  33. data/sub/avm-files/lib/avm/files/formatter/formats/generic_plain.rb +34 -0
  34. data/sub/avm-files/lib/avm/files/formatter/formats/html.rb +45 -0
  35. data/sub/avm-files/lib/avm/files/formatter/formats/javascript.rb +24 -0
  36. data/sub/avm-files/lib/avm/files/formatter/formats/json.rb +27 -0
  37. data/sub/avm-files/lib/avm/files/formatter/formats/php.rb +22 -0
  38. data/sub/avm-files/lib/avm/files/formatter/formats/python.rb +22 -0
  39. data/sub/avm-files/lib/avm/files/formatter/formats/ruby.rb +22 -0
  40. data/sub/avm-files/lib/avm/files/formatter/formats/xml.rb +28 -0
  41. data/sub/avm-files/lib/avm/files/formatter/formats.rb +13 -0
  42. data/sub/avm-files/lib/avm/files/formatter/utf8_assert.rb +74 -0
  43. data/sub/avm-files/lib/avm/files/formatter.rb +90 -0
  44. data/sub/avm-files/lib/avm/files/runner_with/file_replacer.rb +34 -0
  45. data/sub/avm-files/lib/avm/files/runner_with/filesystem_traverser.rb +54 -0
  46. data/sub/avm-files/lib/avm/files/runner_with.rb +11 -0
  47. data/sub/avm-files/lib/avm/files/text_replacer/gsub.rb +24 -0
  48. data/sub/avm-files/lib/avm/files/text_replacer.rb +32 -0
  49. data/sub/avm-files/lib/avm/files/version.rb +7 -0
  50. data/sub/avm-files/lib/avm/files.rb +9 -0
  51. data/sub/avm-files/spec/rubocop_spec.rb +3 -0
  52. data/sub/avm-files/spec/spec_helper.rb +4 -0
  53. data/sub/avm-tools/avm-tools.gemspec +5 -5
  54. data/sub/avm-tools/lib/avm/tools/version.rb +1 -1
  55. data/sub/eac_cli/eac_cli.gemspec +3 -3
  56. data/sub/eac_cli/lib/eac_cli/core_ext.rb +1 -1
  57. data/sub/eac_cli/lib/eac_cli/runner_with_set.rb +7 -3
  58. data/sub/eac_cli/lib/eac_cli/version.rb +1 -1
  59. data/sub/eac_ruby_base0/eac_ruby_base0.gemspec +4 -4
  60. data/sub/eac_ruby_base0/lib/eac_ruby_base0/version.rb +1 -1
  61. metadata +51 -19
  62. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/core_update.rb +0 -118
  63. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/data_unit.rb +0 -51
  64. data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches/object/runner_with.rb +0 -5
  65. data/sub/eac_ruby_base0/lib/eac_ruby_base0/patches/object.rb +0 -5
  66. data/sub/eac_ruby_base0/lib/eac_ruby_base0/runner_with/filesystem_traverser.rb +0 -52
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 702b93f483faabce748c237dafa2c8cb08d1f1eb4094a93f09166e4e0457c55e
4
- data.tar.gz: cd78bbcf11c9da7593068a6667fb2acfdc6c09fa37a6ba7acabd61602915e378
3
+ metadata.gz: 4ca7fa87db2c97ecf60dc93100760491b936f91d3d979a38953bbf2f1c9c964a
4
+ data.tar.gz: ce07adf422abd3a143defcd747de05d527a605934dce9300bf8cf48b46195dc8
5
5
  SHA512:
6
- metadata.gz: 87b38acdc3473f7c62ef5bbf64353fc83daca80c80e9dc8d88ca0d1ddb2225584e57ca81c4bf5a2f9d95abe59ee470da41fb1fc0ac16ff973c7f2e6520d95eb1
7
- data.tar.gz: 30edd04c05f07e3d1616321ec2685dc0b00b25d3c165fbbf4fac6c109dc030fc2a7293f084d8229a4b8349e7ed1a8fb10e0ec04e66f00462a1a760ba4ce9ea6f
6
+ metadata.gz: 813cd67c73235bd826df76db57fc0711fd4a176a2ac601111cd3f5359a68d6c05ceeff179c4311f2ec51d5f8d4b79ce6e6413242e93b44a07507e9f87407f726
7
+ data.tar.gz: 2e8042ef0bf14c1bc656f9735f978364ad51bf18c0330b0edd73f88ff75f078f37e48d39aeb9a498d72aee87af8e1662aefee29ba98db930a33b37041860b9ee
data/Gemfile.lock CHANGED
@@ -1,19 +1,19 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- eac_tools (0.29.0)
4
+ eac_tools (0.31.0)
5
5
  avm (~> 0.43)
6
6
  avm-eac_asciidoctor_base0 (~> 0.7)
7
7
  avm-eac_generic_base0 (~> 0.5)
8
8
  avm-eac_latex_base0 (~> 0.2)
9
9
  avm-eac_rails_base0 (~> 0.8)
10
10
  avm-eac_rails_base1 (~> 0.6)
11
- avm-eac_redmine_base0 (~> 0.14)
11
+ avm-eac_redmine_base0 (~> 0.15)
12
12
  avm-eac_redmine_plugin_base0 (~> 0.3)
13
- avm-eac_ruby_base1 (~> 0.20, >= 0.20.1)
13
+ avm-eac_ruby_base1 (~> 0.21)
14
14
  avm-eac_webapp_base0 (~> 0.8)
15
15
  avm-eac_wordpress_base0 (~> 0.2)
16
- avm-tools (~> 0.136)
16
+ avm-tools (~> 0.136, >= 0.136.1)
17
17
  eac_ruby_utils (~> 0.103)
18
18
 
19
19
  PATH
@@ -60,15 +60,15 @@ PATH
60
60
  PATH
61
61
  remote: sub/avm-eac_redmine_base0
62
62
  specs:
63
- avm-eac_redmine_base0 (0.14.0)
64
- avm (~> 0.41)
63
+ avm-eac_redmine_base0 (0.15.0)
64
+ avm (~> 0.43)
65
65
  avm-eac_generic_base0 (~> 0.5)
66
66
  avm-eac_rails_base1 (~> 0.6)
67
67
  avm-eac_ubuntu_base0 (~> 0.3)
68
68
  curb (~> 0.9, >= 0.9.11)
69
69
  eac_fs (~> 0.12, >= 0.12.3)
70
70
  eac_rest (~> 0.6, >= 0.6.1)
71
- eac_ruby_utils (~> 0.102)
71
+ eac_ruby_utils (~> 0.103)
72
72
 
73
73
  PATH
74
74
  remote: sub/avm-eac_redmine_plugin_base0
@@ -80,10 +80,10 @@ PATH
80
80
  PATH
81
81
  remote: sub/avm-eac_ruby_base1
82
82
  specs:
83
- avm-eac_ruby_base1 (0.20.1)
83
+ avm-eac_ruby_base1 (0.21.0)
84
84
  avm (~> 0.41, >= 0.41.1)
85
85
  avm-eac_generic_base0 (~> 0.5)
86
- eac_ruby_utils (~> 0.102)
86
+ eac_ruby_utils (~> 0.103)
87
87
 
88
88
  PATH
89
89
  remote: sub/avm-eac_webapp_base0
@@ -103,21 +103,31 @@ PATH
103
103
  avm-eac_webapp_base0 (~> 0.6)
104
104
  eac_ruby_utils (~> 0.102)
105
105
 
106
+ PATH
107
+ remote: sub/avm-files
108
+ specs:
109
+ avm-files (0.4.1)
110
+ avm (~> 0.43)
111
+ eac_cli (~> 0.28)
112
+ eac_fs (~> 0.12, >= 0.12.3)
113
+ eac_ruby_utils (~> 0.103)
114
+ eac_templates (~> 0.3, >= 0.3.2)
115
+
106
116
  PATH
107
117
  remote: sub/avm-tools
108
118
  specs:
109
- avm-tools (0.136.0)
110
- aranha-parsers (~> 0.14, >= 0.14.1)
119
+ avm-tools (0.136.1)
120
+ aranha-parsers (~> 0.14, >= 0.14.3)
111
121
  avm (~> 0.42)
112
- avm-eac_ruby_base1 (~> 0.20, >= 0.20.1)
122
+ avm-eac_ruby_base1 (~> 0.21)
113
123
  avm-eac_ubuntu_base0 (~> 0.3)
114
- avm-files (~> 0.3, >= 0.3.2)
124
+ avm-files (~> 0.4)
115
125
  avm-git (~> 0.4)
116
126
  clipboard (~> 1.3, >= 1.3.6)
117
127
  curb (~> 0.9, >= 0.9.11)
118
128
  eac_git (~> 0.12, >= 0.12.2)
119
- eac_ruby_base0 (~> 0.16, >= 0.16.6)
120
- eac_templates (~> 0.3, >= 0.3.1)
129
+ eac_ruby_base0 (~> 0.17)
130
+ eac_templates (~> 0.3, >= 0.3.2)
121
131
  git (~> 1.12)
122
132
  ruby-progressbar (~> 1.11)
123
133
 
@@ -138,10 +148,10 @@ PATH
138
148
  PATH
139
149
  remote: sub/eac_cli
140
150
  specs:
141
- eac_cli (0.27.8)
142
- colorize (~> 0.8.1)
143
- eac_config (~> 0.8)
144
- eac_ruby_utils (~> 0.95)
151
+ eac_cli (0.28.0)
152
+ colorize (~> 0.8, >= 0.8.1)
153
+ eac_config (~> 0.11, >= 0.11.1)
154
+ eac_ruby_utils (~> 0.103)
145
155
 
146
156
  PATH
147
157
  remote: sub/eac_config
@@ -168,11 +178,11 @@ PATH
168
178
  PATH
169
179
  remote: sub/eac_ruby_base0
170
180
  specs:
171
- eac_ruby_base0 (0.16.6)
172
- avm-eac_ruby_base1 (~> 0.8)
173
- eac_cli (~> 0.27, >= 0.27.5)
174
- eac_fs (~> 0.10)
175
- eac_ruby_utils (~> 0.95, >= 0.95.1)
181
+ eac_ruby_base0 (0.17.0)
182
+ avm-eac_ruby_base1 (~> 0.21)
183
+ eac_cli (~> 0.28)
184
+ eac_fs (~> 0.12, >= 0.12.3)
185
+ eac_ruby_utils (~> 0.103)
176
186
 
177
187
  PATH
178
188
  remote: sub/eac_ruby_utils
@@ -213,11 +223,6 @@ GEM
213
223
  avm (~> 0.7)
214
224
  eac_ruby_utils (~> 0.77, >= 0.77.1)
215
225
  eac_templates (~> 0.3)
216
- avm-files (0.3.2)
217
- avm (~> 0.6)
218
- eac_fs (~> 0.5)
219
- eac_ruby_utils (~> 0.76)
220
- eac_templates (~> 0.2)
221
226
  avm-git (0.4.0)
222
227
  avm-files (~> 0.1)
223
228
  eac_git (~> 0.11)
@@ -351,6 +356,7 @@ DEPENDENCIES
351
356
  avm-eac_ruby_base1!
352
357
  avm-eac_webapp_base0!
353
358
  avm-eac_wordpress_base0!
359
+ avm-files!
354
360
  avm-tools!
355
361
  eac_cli!
356
362
  eac_config!
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module EacTools
4
- VERSION = '0.29.0'
4
+ VERSION = '0.31.0'
5
5
  end
@@ -12,14 +12,14 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.files = Dir['{lib,locale,template}/**/*']
14
14
 
15
- s.add_dependency 'avm', '~> 0.41'
15
+ s.add_dependency 'avm', '~> 0.43'
16
16
  s.add_dependency 'avm-eac_generic_base0', '~> 0.5'
17
17
  s.add_dependency 'avm-eac_rails_base1', '~> 0.6'
18
18
  s.add_dependency 'avm-eac_ubuntu_base0', '~> 0.3'
19
19
  s.add_dependency 'curb', '~> 0.9', '>= 0.9.11'
20
20
  s.add_dependency 'eac_fs', '~> 0.12', '>= 0.12.3'
21
21
  s.add_dependency 'eac_rest', '~> 0.6', '>= 0.6.1'
22
- s.add_dependency 'eac_ruby_utils', '~> 0.102'
22
+ s.add_dependency 'eac_ruby_utils', '~> 0.103'
23
23
 
24
24
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
25
25
  end
@@ -4,7 +4,9 @@ require 'avm/eac_rails_base1/apache_host'
4
4
 
5
5
  module Avm
6
6
  module EacRedmineBase0
7
- class ApacheHost < ::Avm::EacRailsBase1::ApacheHost
7
+ module Instances
8
+ class ApacheHost < ::Avm::EacRailsBase1::ApacheHost
9
+ end
8
10
  end
9
11
  end
10
12
  end
@@ -1,9 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'addressable/uri'
4
- require 'avm/eac_redmine_base0/data_unit'
4
+ require 'avm/eac_redmine_base0/instances/data_unit'
5
5
  require 'avm/eac_redmine_base0/instances/docker_image'
6
- require 'avm/eac_redmine_base0/rest_api'
6
+ require 'avm/eac_redmine_base0/instances/runners'
7
+ require 'avm/eac_redmine_base0/instances/rest_api'
7
8
  require 'avm/eac_rails_base1/instances/base'
8
9
 
9
10
  module Avm
@@ -32,7 +33,7 @@ module Avm
32
33
  @data_package ||= ::Avm::Data::Instance::Package.new(
33
34
  self,
34
35
  units: {
35
- all: ::Avm::EacRedmineBase0::DataUnit.new(self)
36
+ all: ::Avm::EacRedmineBase0::Instances::DataUnit.new(self)
36
37
  }
37
38
  )
38
39
  end
@@ -46,11 +47,11 @@ module Avm
46
47
 
47
48
  private
48
49
 
49
- # @return [Avm::EacRedmineBase0::RestApi]
50
+ # @return [Avm::EacRedmineBase0::Instances::RestApi]
50
51
  def rest_api_uncached
51
52
  url = root_url
52
53
  url.query_values = { key: read_entry('api.key') }
53
- ::Avm::EacRedmineBase0::RestApi.new(url)
54
+ ::Avm::EacRedmineBase0::Instances::RestApi.new(url)
54
55
  end
55
56
  end
56
57
  end
@@ -0,0 +1,53 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/data/instance/unit'
4
+ require 'eac_ruby_utils/core_ext'
5
+ require 'curb'
6
+ require 'open-uri'
7
+
8
+ module Avm
9
+ module EacRedmineBase0
10
+ module Instances
11
+ class DataUnit < ::Avm::Data::Instance::Unit
12
+ common_constructor :instance
13
+
14
+ EXPORT_PATH = '/backup/export'
15
+ EXTENSION = '.tar'
16
+ IMPORT_PATH = '/backup/import.json'
17
+
18
+ def do_dump(data_path)
19
+ ::File.open(data_path, 'wb') do |file|
20
+ file << export_request.response.body_data_or_raise
21
+ end
22
+ end
23
+
24
+ def do_load(data_path)
25
+ do_load_by_web(data_path) || do_load_by_rake(data_path) || raise('Failed to load')
26
+ end
27
+
28
+ def do_load_by_web(data_path)
29
+ c = Curl::Easy.new(import_url)
30
+ c.multipart_form_post = true
31
+ c.http_post(Curl::PostField.file('redmine_with_git_tableless_load[path]', data_path))
32
+ c.perform
33
+ true
34
+ rescue Curl::Err::ConnectionFailedError
35
+ false
36
+ end
37
+
38
+ def do_load_by_rake(data_path)
39
+ instance.bundle('exec', 'rake', "redmine_with_git:load:all[#{data_path}]").system
40
+ true
41
+ end
42
+
43
+ def export_request
44
+ instance.rest_api.request(EXPORT_PATH)
45
+ end
46
+
47
+ def import_url
48
+ instance.rest_api.build_service_url(IMPORT_PATH).to_s
49
+ end
50
+ end
51
+ end
52
+ end
53
+ end
@@ -5,7 +5,9 @@ require 'eac_rest/api'
5
5
 
6
6
  module Avm
7
7
  module EacRedmineBase0
8
- class RestApi < ::EacRest::Api
8
+ module Instances
9
+ class RestApi < ::EacRest::Api
10
+ end
9
11
  end
10
12
  end
11
13
  end
@@ -8,7 +8,7 @@ module Avm
8
8
  module Instances
9
9
  module Runners
10
10
  class ProjectRename
11
- runner_with ::Avm::EacRailsBase1::RunnerWith::Bundle do
11
+ runner_with :help, ::Avm::EacRailsBase1::RunnerWith::Bundle do
12
12
  pos_arg :from
13
13
  pos_arg :to
14
14
  end
@@ -2,7 +2,7 @@
2
2
 
3
3
  require 'avm/eac_redmine_base0/instances/base'
4
4
  require 'avm/eac_redmine_base0/instances/deploy'
5
- require 'avm/eac_redmine_base0/apache_host'
5
+ require 'avm/eac_redmine_base0/instances/apache_host'
6
6
  require 'avm/eac_rails_base1/runner'
7
7
  require 'eac_ruby_utils/core_ext'
8
8
 
@@ -0,0 +1,120 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_redmine_base0/sources/core_update'
4
+ require 'avm/sources/base/configuration'
5
+ require 'avm/sync'
6
+ require 'eac_fs/cached_download'
7
+ require 'eac_ruby_utils/core_ext'
8
+
9
+ module Avm
10
+ module EacRedmineBase0
11
+ module Sources
12
+ class CoreUpdate
13
+ enable_speaker
14
+ enable_simple_cache
15
+ common_constructor :source, :version, :url
16
+
17
+ GITIGNORE_ADD = %w[/public/assets/**/* /config/install.sh /config/secrets_key.txt
18
+ /log/**/*].freeze
19
+ GITIGNORE_DEL = %w[/Gemfile.lock /plugins/* /public/themes/*].freeze
20
+ TARGET_KEEP = ::Avm::Sources::Base::Configuration::CONFIGURATION_FILENAMES
21
+ .map { |b| "/#{b}" } + %w[/Gemfile.lock].freeze
22
+
23
+ def run
24
+ ::EacRubyUtils::Fs::Temp.on_directory do |dir|
25
+ @tempdir = dir
26
+ assert_source_package
27
+ extract_package_to_tempdir
28
+ sync_content
29
+ change_git_ignore
30
+ validate_empty_dir
31
+ end
32
+ git_commit
33
+ success 'Done!'
34
+ end
35
+
36
+ def assert_source_package
37
+ infom 'Asserting source package...'
38
+ source_package.assert
39
+ infov 'Package cache path', source_package.path
40
+ infov 'Package size', source_package.path.size
41
+ end
42
+
43
+ def fs_object_id
44
+ [source.path, version].join('_').variableize
45
+ end
46
+
47
+ private
48
+
49
+ attr_reader :tempdir
50
+
51
+ def change_git_ignore
52
+ file = target_path.join('.gitignore')
53
+ file.write(
54
+ (file.read.each_line.map(&:strip).reject { |line| GITIGNORE_DEL.include?(line) } +
55
+ ['', '#eac_redmine_base0'] + GITIGNORE_ADD).map { |line| "#{line}\n" }.join
56
+ )
57
+ end
58
+
59
+ def extract_package_to_tempdir
60
+ infom "Extracting package to tempdir #{tempdir}..."
61
+ ::EacRubyUtils::Envs.local.command(
62
+ 'tar', '-xf', source_package.path.to_path, '-C', tempdir.to_path,
63
+ '--strip-components', '1'
64
+ ).execute!
65
+ end
66
+
67
+ def git_commit
68
+ if git_repo.dirty?
69
+ infom 'Git commiting...'
70
+ git_repo.command('add', '--', target_path).execute!
71
+ git_repo.command('commit', '-m', git_commit_message, '--', target_path).execute!
72
+ else
73
+ infom 'Nothing to commit'
74
+ end
75
+ end
76
+
77
+ def git_commit_message
78
+ i18n_translate(__method__, version: version, __locale: source.locale)
79
+ end
80
+
81
+ def git_repo_uncached
82
+ ::EacGit::Local.new(target_path)
83
+ end
84
+
85
+ def sync_content
86
+ ::Avm::Sync.new(source_path, target_path)
87
+ .add_exclude('/*').add_includes(*target_files_to_remove).move_mode(true).run
88
+ end
89
+
90
+ # @return [EacFs::CachedDownload]
91
+ def source_package_uncached
92
+ ::EacFs::CachedDownload.new(url, fs_cache)
93
+ end
94
+
95
+ def validate_empty_dir
96
+ if source_path.children.empty?
97
+ infom 'No content left in source directory'
98
+ else
99
+ fatal_error 'Found entries in source directory: ' +
100
+ source_path.children.map { |c| c.basename.to_path }.join(', ')
101
+ end
102
+ end
103
+
104
+ def source_path_uncached
105
+ ::Pathname.new(tempdir.to_path)
106
+ end
107
+
108
+ def target_files_to_remove
109
+ git_repo.command('ls-files').execute!
110
+ .each_line.map { |v| "/#{v.strip}" }
111
+ .without(*TARGET_KEEP)
112
+ end
113
+
114
+ def target_path_uncached
115
+ source.path
116
+ end
117
+ end
118
+ end
119
+ end
120
+ end
@@ -1,7 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'avm/eac_rails_base1/sources/base'
4
- require 'avm/eac_redmine_base0/core_update'
4
+ require 'avm/eac_redmine_base0/sources/core_update'
5
5
  require 'eac_cli/core_ext'
6
6
 
7
7
  module Avm
@@ -29,7 +29,8 @@ module Avm
29
29
  end
30
30
 
31
31
  def update
32
- ::Avm::EacRedmineBase0::CoreUpdate.new(runner_context.call(:subject), version, url).run
32
+ ::Avm::EacRedmineBase0::Sources::CoreUpdate
33
+ .new(runner_context.call(:subject), version, url).run
33
34
  end
34
35
 
35
36
  def url
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacRedmineBase0
5
- VERSION = '0.14.0'
5
+ VERSION = '0.15.0'
6
6
  end
7
7
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_redmine_base0/instances/apache_host'
4
+ require 'avm/eac_redmine_base0/instances/base'
5
+
6
+ RSpec.describe ::Avm::EacRedmineBase0::Instances::ApacheHost do
7
+ describe '#no_ssl_site_content' do
8
+ let(:instance) { ::Avm::EacRedmineBase0::Instances::Base.by_id('stub-app_0') }
9
+ let(:apache_host) { described_class.new(instance) }
10
+ let(:fixtures_dir) { ::Pathname.new('apache_host_spec_files').expand_path(__dir__) }
11
+ let(:expected_content) { fixtures_dir.join('apache_host_spec_no_ssl_content.conf').read }
12
+
13
+ before do
14
+ instance.entry('install.path').write('/path/to/stub-app_0')
15
+ instance.entry('web.url').write('http://stubapp.net')
16
+ end
17
+
18
+ it do
19
+ expect(apache_host.no_ssl_site_content).to eq(expected_content)
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,11 @@
1
+ <VirtualHost *:80>
2
+ ServerName "stubapp.net"
3
+ DocumentRoot "/path/to/stub-app_0/public"
4
+ PassengerEnabled On
5
+
6
+ <Directory "/path/to/stub-app_0/public">
7
+ Allow from all
8
+ Options -MultiViews
9
+ Require all granted
10
+ </Directory>
11
+ </VirtualHost>
@@ -2,3 +2,4 @@
2
2
 
3
3
  require 'eac_ruby_utils/rspec/default_setup'
4
4
  ::EacRubyUtils::Rspec.default_setup_create(::File.expand_path('..', __dir__))
5
+ ::EacRubyUtils::Rspec.default_setup.stub_eac_config_node
@@ -14,7 +14,7 @@ Gem::Specification.new do |s|
14
14
 
15
15
  s.add_dependency 'avm', '~> 0.41', '>= 0.41.1'
16
16
  s.add_dependency 'avm-eac_generic_base0', '~> 0.5'
17
- s.add_dependency 'eac_ruby_utils', '~> 0.102'
17
+ s.add_dependency 'eac_ruby_utils', '~> 0.103'
18
18
 
19
19
  s.add_development_dependency 'aranha-parsers', '~> 0.14', '>= 0.14.1'
20
20
  s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5.1'
@@ -0,0 +1,77 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_cli/core_ext'
4
+ require 'avm/eac_ruby_base1/sources/namespace_replacer'
5
+
6
+ module Avm
7
+ module EacRubyBase1
8
+ module Runners
9
+ class Base
10
+ class LibRename
11
+ runner_with :help, :file_replacer do
12
+ desc 'Rename Ruby modules classes Ruby.'
13
+ arg_opt '-f', '--from', 'Rename "from".'
14
+ arg_opt '-t', '--to', 'Rename "to".'
15
+ end
16
+
17
+ def run
18
+ start_banner
19
+ validate
20
+ replacements_banner
21
+ run_filesystem_traverser
22
+ success 'Done!'
23
+ end
24
+
25
+ def validate
26
+ %w[from to].each do |opt|
27
+ fatal_error "No \"#{opt}\" option" if send(opt).blank?
28
+ end
29
+ end
30
+
31
+ def start_banner
32
+ infov 'From', from
33
+ infov 'To', to
34
+ end
35
+
36
+ private
37
+
38
+ def namespace_replacer_uncached
39
+ ::Avm::EacRubyBase1::Sources::NamespaceReplacer.new(from, to)
40
+ end
41
+
42
+ def text_replacer
43
+ @text_replacer ||= super.gsub(from, to).gsub(from_path, to_path)
44
+ .gsub(namespace_replacer.from_result, namespace_replacer.to_result)
45
+ end
46
+
47
+ def replace_file?(file)
48
+ file.extname == '.rb'
49
+ end
50
+
51
+ def replacements_banner
52
+ infov 'Replacements', text_replacer.replacements.count
53
+ text_replacer.replacements.each do |rep|
54
+ infov ' * ', rep
55
+ end
56
+ end
57
+
58
+ def from
59
+ parsed.from.to_s
60
+ end
61
+
62
+ def to
63
+ parsed.to.to_s
64
+ end
65
+
66
+ def from_path
67
+ from.underscore
68
+ end
69
+
70
+ def to_path
71
+ to.underscore
72
+ end
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Avm
4
+ module EacRubyBase1
5
+ module Sources
6
+ class NamespaceReplacer
7
+ common_constructor :from, :to
8
+
9
+ def concat_regex(regexes)
10
+ r = regexes.first
11
+ regexes[1..-1].each do |x|
12
+ r = ::Regexp.new(r.source + x.source)
13
+ end
14
+ r
15
+ end
16
+
17
+ def from_result
18
+ /\n#{from_open.source}(.+)#{from_close.source}/m
19
+ end
20
+
21
+ def from_open
22
+ concat_regex(from.split('::')
23
+ .map { |v| / *(?:class|module) +#{::Regexp.quote(v)} *\n/m })
24
+ end
25
+
26
+ def from_close
27
+ concat_regex(from.split('::').count.times.map { / *end *\n/m })
28
+ end
29
+
30
+ def to_result
31
+ "\n\n#{to_open}\\1#{to_close}"
32
+ end
33
+
34
+ def to_open
35
+ s = ''
36
+ to.split('::').each_with_index do |part, index|
37
+ s += (' ' * index) + "module #{part}\n"
38
+ end
39
+ s
40
+ end
41
+
42
+ def to_close
43
+ parts = to.split('::')
44
+ s = ''
45
+ parts.each_with_index do |_part, index|
46
+ tabc = (parts.count - 1 - index)
47
+ tabc -= 1 if index.zero?
48
+ s += (' ' * tabc) + "end\n"
49
+ end
50
+ s
51
+ end
52
+ end
53
+ end
54
+ end
55
+ end