eac_tools 0.86.11 → 0.86.12

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +17 -19
  3. data/lib/eac_tools/version.rb +1 -1
  4. data/sub/avm/lib/avm/entries/base.rb +12 -1
  5. data/sub/avm/lib/avm/sources/base/application.rb +3 -1
  6. data/sub/avm/lib/avm/version.rb +1 -1
  7. metadata +4 -53
  8. data/sub/avm-eac_redmine_base0/Gemfile +0 -8
  9. data/sub/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +0 -27
  10. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/apache_host.rb +0 -12
  11. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/database.rb +0 -30
  12. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/files.rb +0 -22
  13. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/gitolite.rb +0 -55
  14. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/install.rb +0 -46
  15. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/nodejs.rb +0 -22
  16. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/web.rb +0 -20
  17. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base.rb +0 -59
  18. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/deploy.rb +0 -19
  19. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/docker_image.rb +0 -106
  20. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/entity_base.rb +0 -35
  21. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/project.rb +0 -26
  22. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/root.rb +0 -21
  23. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/wiki_page.rb +0 -54
  24. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api.rb +0 -14
  25. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/docker.rb +0 -17
  26. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/read.rb +0 -27
  27. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/write.rb +0 -70
  28. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page.rb +0 -30
  29. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project.rb +0 -26
  30. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project_rename.rb +0 -56
  31. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners.rb +0 -14
  32. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances.rb +0 -11
  33. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base.rb +0 -36
  34. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update.rb +0 -120
  35. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/core_update.rb +0 -65
  36. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/docker.rb +0 -19
  37. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners.rb +0 -13
  38. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources.rb +0 -11
  39. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/version.rb +0 -7
  40. data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0.rb +0 -9
  41. data/sub/avm-eac_redmine_base0/locale/en.yml +0 -6
  42. data/sub/avm-eac_redmine_base0/locale/pt-BR.yml +0 -6
  43. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec.rb +0 -22
  44. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec_files/apache_host_spec_no_ssl_content.conf +0 -11
  45. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec.rb +0 -26
  46. data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec_files/config.yml +0 -10
  47. data/sub/avm-eac_redmine_base0/spec/rubocop_spec.rb +0 -3
  48. data/sub/avm-eac_redmine_base0/spec/spec_helper.rb +0 -5
  49. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/install.sh.template +0 -45
  50. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/secrets.yml +0 -8
  51. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/Dockerfile.template +0 -33
  52. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_host_dockerfile +0 -8
  53. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_http_virtualhost.conf.template +0 -10
  54. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_https_virtualhost.conf.template +0 -16
  55. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_path_dockerfile +0 -5
  56. data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/start.sh.template +0 -52
@@ -1,106 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'avm/eac_redmine_base0/instances/deploy'
5
- require 'avm/eac_ubuntu_base0/instances/base'
6
- require 'avm/instances/docker_image'
7
- require 'eac_templates/core_ext'
8
-
9
- module Avm
10
- module EacRedmineBase0
11
- module Instances
12
- class DockerImage < ::Avm::Instances::DockerImage
13
- enable_simple_cache
14
-
15
- APACHE_HOST_DOCKERFILE_SUBPATH = 'apache_host_dockerfile'
16
- APACHE_PATH_DOCKERFILE_SUBPATH = 'apache_path_dockerfile'
17
- INSTALLER_TARGET_TASK_WITH_WEB_PATH_BLANK = 'redmine_as_apache_base'
18
- INSTALLER_TARGET_TASK_WITH_WEB_PATH_PRESENT = 'redmine_as_apache_path'
19
- REDMINE_SOURCE_HOST_SUBPATH = 'redmine_source'
20
-
21
- delegate :database_internal, to: :instance
22
-
23
- def avm_fs_cache_object_id
24
- instance.id
25
- end
26
-
27
- def apache_setup
28
- template.child(apache_setup_dockerfile).apply(self)
29
- end
30
-
31
- # @return [String]
32
- def apache_setup_dockerfile
33
- web_path_present? ? APACHE_PATH_DOCKERFILE_SUBPATH : APACHE_HOST_DOCKERFILE_SUBPATH
34
- end
35
-
36
- def base_image
37
- eac_ubuntu_base0_instance.docker_image.provide.id
38
- end
39
-
40
- def installer_target_task
41
- if web_path_present?
42
- INSTALLER_TARGET_TASK_WITH_WEB_PATH_PRESENT
43
- else
44
- INSTALLER_TARGET_TASK_WITH_WEB_PATH_BLANK
45
- end
46
- end
47
-
48
- def redmine_user
49
- eac_ubuntu_base0_instance.docker_image.user_name
50
- end
51
-
52
- def redmine_user_home
53
- eac_ubuntu_base0_instance.docker_image.user_home
54
- end
55
-
56
- def redmine_path
57
- "#{redmine_user_home}/redmine_app"
58
- end
59
-
60
- def skip_database
61
- ENV.fetch('SKIP_DATABASE', nil)
62
- end
63
-
64
- def start_path
65
- '/start.sh'
66
- end
67
-
68
- def web_path_present?
69
- ::Addressable::URI.parse(instance.web_url).path.present?
70
- end
71
-
72
- def write_in_provide_dir
73
- super
74
-
75
- ::Avm::EacRedmineBase0::Instances::Deploy.template.child('config')
76
- .child('install.sh.template')
77
- .apply_to_file(variables_source, provide_dir.join('install_settings.sh'))
78
- end
79
-
80
- private
81
-
82
- def eac_ubuntu_base0_instance
83
- r = ::Avm::EacUbuntuBase0::Instances::Base.by_id(instance.id)
84
- r.docker_image_options = instance.docker_image_options
85
- r
86
- end
87
-
88
- def git_repo_uncached
89
- ::EacGit::Local.new(instance.source_instance.install_path)
90
- end
91
-
92
- def redmine_source_git_id
93
- git_repo.rev_parse('HEAD')
94
- end
95
-
96
- def redmine_source_path_uncached
97
- r = provide_dir.join(REDMINE_SOURCE_HOST_SUBPATH)
98
- ::FileUtils.rm_rf(r.to_path)
99
- r.mkpath
100
- git_repo.commit(redmine_source_git_id).archive_to_dir(r).system!
101
- REDMINE_SOURCE_HOST_SUBPATH
102
- end
103
- end
104
- end
105
- end
106
- end
@@ -1,35 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_rest/api'
4
- require 'eac_rest/entity'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
- module Avm
8
- module EacRedmineBase0
9
- module Instances
10
- class RestApi < ::EacRest::Api
11
- class EntityBase < ::EacRest::Entity
12
- def build_request(url_suffix)
13
- api.request_json("#{url_suffix}.json")
14
- end
15
-
16
- def data_from_response(response)
17
- raise "\"#{response.url}\" returned non-ok status: #{response.status}" unless
18
- response.status.to_s.start_with?('2')
19
-
20
- return {} if response.body_str.blank?
21
-
22
- response.body_data
23
- rescue ::JSON::ParserError
24
- raise "\"#{response.url}\" returned invalid JSON: \"#{response.body_str}\" " \
25
- "(Status: #{response.status})"
26
- end
27
-
28
- def fetch_data(url_suffix)
29
- data_from_response(build_request(url_suffix).response)
30
- end
31
- end
32
- end
33
- end
34
- end
35
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_redmine_base0/instances/rest_api/entity_base'
4
- require 'avm/eac_redmine_base0/instances/rest_api/wiki_page'
5
- require 'eac_rest/api'
6
- require 'eac_ruby_utils/core_ext'
7
-
8
- module Avm
9
- module EacRedmineBase0
10
- module Instances
11
- class RestApi < ::EacRest::Api
12
- class Project < ::Avm::EacRedmineBase0::Instances::RestApi::EntityBase
13
- # @return [String]
14
- def prefix
15
- "/projects/#{id}"
16
- end
17
-
18
- # @return [Avm::EacRedmineBase0::Instances::RestApi::WikiPage]
19
- def wiki_page(name)
20
- child_entity(::Avm::EacRedmineBase0::Instances::RestApi::WikiPage, name)
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,21 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_redmine_base0/instances/rest_api/entity_base'
4
- require 'eac_rest/api'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
- module Avm
8
- module EacRedmineBase0
9
- module Instances
10
- class RestApi < ::EacRest::Api
11
- class Root < ::Avm::EacRedmineBase0::Instances::RestApi::EntityBase
12
- # @param id_or_identifier [String]
13
- # @return [Avm::EacRedmineBase0::Instances::RestApi::Project]
14
- def project(id_or_identifier)
15
- api.entity(::Avm::EacRedmineBase0::Instances::RestApi::Project, id_or_identifier)
16
- end
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,54 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_redmine_base0/instances/rest_api/entity_base'
4
- require 'eac_rest/api'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
- module Avm
8
- module EacRedmineBase0
9
- module Instances
10
- class RestApi < ::EacRest::Api
11
- class WikiPage < ::Avm::EacRedmineBase0::Instances::RestApi::EntityBase
12
- enable_simple_cache
13
-
14
- # @return [Hash]
15
- def data_from_id
16
- fetch_data(prefix)
17
- end
18
-
19
- # @return [String]
20
- def data_root
21
- 'wiki_page'
22
- end
23
-
24
- # @return [String]
25
- def prefix
26
- "#{parent_entity.prefix}/wiki/#{id}"
27
- end
28
-
29
- # @return [String]
30
- def read
31
- data.fetch(data_root).fetch('text')
32
- end
33
-
34
- # @param content [String]
35
- # @return [+self+]
36
- def write(text)
37
- data_from_response(
38
- build_request(prefix).verb(:put).header('Content-type', 'application/json')
39
- .body_data(write_data(text).to_json).response
40
- )
41
- end
42
-
43
- # @param text [String]
44
- # @return [Hash]
45
- def write_data(text)
46
- {
47
- data_root => { 'text' => text }
48
- }
49
- end
50
- end
51
- end
52
- end
53
- end
54
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'eac_rest/api'
5
-
6
- module Avm
7
- module EacRedmineBase0
8
- module Instances
9
- class RestApi < ::EacRest::Api
10
- require_sub __FILE__
11
- end
12
- end
13
- end
14
- end
@@ -1,17 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/docker/runner'
4
-
5
- module Avm
6
- module EacRedmineBase0
7
- module Instances
8
- module Runners
9
- class Docker < ::Avm::Docker::Runner
10
- def use_default_registry?
11
- false
12
- end
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/core_ext'
4
-
5
- module Avm
6
- module EacRedmineBase0
7
- module Instances
8
- module Runners
9
- class Project
10
- class WikiPage
11
- class Read
12
- runner_with :help, :output
13
-
14
- def run
15
- run_output
16
- end
17
-
18
- def output_content
19
- runner_context.call(:wiki_page_content)
20
- end
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
27
- end
@@ -1,70 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/core_ext'
4
-
5
- module Avm
6
- module EacRedmineBase0
7
- module Instances
8
- module Runners
9
- class Project
10
- class WikiPage
11
- class Write
12
- runner_with :help, :confirmation, :input do
13
- bool_opt '-f', '--force'
14
- end
15
- delegate :force?, to: :parsed
16
-
17
- def run
18
- start_banner
19
- if write?
20
- run_write
21
- else
22
- success 'Content unchanged, no further action will be taken'
23
- end
24
- end
25
-
26
- def start_banner
27
- infov 'Content'
28
- infov ' * Current', current_content
29
- infov ' * New', new_content
30
- infov ' * Changed?', content_changed?
31
- end
32
-
33
- # @return [Boolean]
34
- def content_changed?
35
- new_content != current_content
36
- end
37
-
38
- def run_write
39
- if confirm?('Write?')
40
- infom 'Writing...'
41
- runner_context.call(:wiki_page).write(new_content)
42
- success('Writed!')
43
- else
44
- success('Unconfirmed, no further action will be taken')
45
- end
46
- end
47
-
48
- # @return [Boolean]
49
- def write?
50
- parsed.force? || content_changed?
51
- end
52
-
53
- private
54
-
55
- # @return [String]
56
- def current_content_uncached
57
- runner_context.call(:wiki_page_content)
58
- end
59
-
60
- # @return [String]
61
- def new_content_uncached
62
- input_content
63
- end
64
- end
65
- end
66
- end
67
- end
68
- end
69
- end
70
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/core_ext'
4
-
5
- module Avm
6
- module EacRedmineBase0
7
- module Instances
8
- module Runners
9
- class Project
10
- class WikiPage
11
- runner_with :help, :subcommands do
12
- pos_arg :name
13
- subcommands
14
- end
15
-
16
- def wiki_page
17
- runner_context.call(:project).wiki_page(parsed.name)
18
- end
19
-
20
- def wiki_page_content
21
- wiki_page.read
22
- end
23
-
24
- require_sub __FILE__
25
- end
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/core_ext'
4
-
5
- module Avm
6
- module EacRedmineBase0
7
- module Instances
8
- module Runners
9
- class Project
10
- runner_with :help, :subcommands do
11
- pos_arg :id_or_identifier
12
- subcommands
13
- end
14
-
15
- private
16
-
17
- def project_uncached
18
- runner_context.call(:instance).rest_api.root_entity.project(parsed.id_or_identifier)
19
- end
20
-
21
- require_sub __FILE__
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,56 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/core_ext'
4
- require 'avm/eac_rails_base1/instances/runners/code_runner'
5
-
6
- module Avm
7
- module EacRedmineBase0
8
- module Instances
9
- module Runners
10
- class ProjectRename
11
- runner_with :help, ::Avm::EacRailsBase1::RunnerWith::Bundle do
12
- pos_arg :from
13
- pos_arg :to
14
- end
15
-
16
- def run
17
- bundle_run
18
- end
19
-
20
- def start_banner
21
- infov 'From', from
22
- infov 'To', to
23
- end
24
-
25
- delegate :from, :to, to: :parsed
26
-
27
- def bundle_args
28
- %w[exec rails runner] + [code]
29
- end
30
-
31
- def code
32
- <<~CODE
33
- from_arg = '#{from}'
34
- to_arg = '#{to}'
35
- project = ::Project.where(identifier: from_arg).first
36
- if project.present?
37
- puts "Project found: \#{project}"
38
- puts "Renaming..."
39
- project.update_column(:identifier, to_arg)
40
- puts "Renamed. Testing..."
41
- project = ::Project.where(identifier: to_arg).first
42
- if project
43
- puts "Project found: \#{project}"
44
- else
45
- fail "After rename: project not found with identifier \\"\#{to_arg}\\""
46
- end
47
- else
48
- fail "Before rename: project not found with identifier \\"\#{from_arg}\\""
49
- end
50
- CODE
51
- end
52
- end
53
- end
54
- end
55
- end
56
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_redmine_base0/instances/deploy'
4
- require 'eac_ruby_utils/core_ext'
5
-
6
- module Avm
7
- module EacRedmineBase0
8
- module Instances
9
- module Runners
10
- require_sub __FILE__
11
- end
12
- end
13
- end
14
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module EacRedmineBase0
7
- module Instances
8
- require_sub __FILE__
9
- end
10
- end
11
- end
@@ -1,36 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/eac_rails_base1/sources/base'
4
- require 'avm/eac_redmine_base0/sources/runners'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
- module Avm
8
- module EacRedmineBase0
9
- module Sources
10
- class Base < ::Avm::EacRailsBase1::Sources::Base
11
- DEFAULT_TEST_COMMANDS = {}.freeze
12
- REDMINE_LIB_SUBPATH = 'lib/redmine.rb'
13
- SUBS_INCLUDE_PATHS_DEFAULT = ['plugins/*'].freeze
14
-
15
- # Return a empty hash (No tests).
16
- #
17
- # @return [Hash<String, EacRubyUtils::Envs::Command].
18
- def default_test_commands
19
- DEFAULT_TEST_COMMANDS
20
- end
21
-
22
- def redmine_lib_path
23
- path.join(REDMINE_LIB_SUBPATH)
24
- end
25
-
26
- def subs_include_paths_default
27
- SUBS_INCLUDE_PATHS_DEFAULT
28
- end
29
-
30
- def valid?
31
- super && redmine_lib_path.exist?
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,120 +0,0 @@
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: ' + # rubocop:disable Style/StringConcatenation
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