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.
- checksums.yaml +4 -4
- data/Gemfile.lock +17 -19
- data/lib/eac_tools/version.rb +1 -1
- data/sub/avm/lib/avm/entries/base.rb +12 -1
- data/sub/avm/lib/avm/sources/base/application.rb +3 -1
- data/sub/avm/lib/avm/version.rb +1 -1
- metadata +4 -53
- data/sub/avm-eac_redmine_base0/Gemfile +0 -8
- data/sub/avm-eac_redmine_base0/avm-eac_redmine_base0.gemspec +0 -27
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/apache_host.rb +0 -12
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/database.rb +0 -30
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/files.rb +0 -22
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/gitolite.rb +0 -55
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/install.rb +0 -46
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/nodejs.rb +0 -22
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base/web.rb +0 -20
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/base.rb +0 -59
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/deploy.rb +0 -19
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/docker_image.rb +0 -106
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/entity_base.rb +0 -35
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/project.rb +0 -26
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/root.rb +0 -21
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api/wiki_page.rb +0 -54
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/rest_api.rb +0 -14
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/docker.rb +0 -17
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/read.rb +0 -27
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/write.rb +0 -70
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page.rb +0 -30
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project.rb +0 -26
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project_rename.rb +0 -56
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners.rb +0 -14
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances.rb +0 -11
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/base.rb +0 -36
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/core_update.rb +0 -120
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/core_update.rb +0 -65
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners/docker.rb +0 -19
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources/runners.rb +0 -13
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/sources.rb +0 -11
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/version.rb +0 -7
- data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0.rb +0 -9
- data/sub/avm-eac_redmine_base0/locale/en.yml +0 -6
- data/sub/avm-eac_redmine_base0/locale/pt-BR.yml +0 -6
- data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/apache_host_spec.rb +0 -22
- 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
- data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec.rb +0 -26
- data/sub/avm-eac_redmine_base0/spec/lib/avm/eac_redmine_base0/instances/base/gitolite_spec_files/config.yml +0 -10
- data/sub/avm-eac_redmine_base0/spec/rubocop_spec.rb +0 -3
- data/sub/avm-eac_redmine_base0/spec/spec_helper.rb +0 -5
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/install.sh.template +0 -45
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/deploy/config/secrets.yml +0 -8
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/Dockerfile.template +0 -33
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_host_dockerfile +0 -8
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_http_virtualhost.conf.template +0 -10
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_https_virtualhost.conf.template +0 -16
- data/sub/avm-eac_redmine_base0/template/avm/eac_redmine_base0/instances/docker_image/apache_path_dockerfile +0 -5
- 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,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
|
data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page/read.rb
DELETED
|
@@ -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
|
data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project/wiki_page.rb
DELETED
|
@@ -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
|
data/sub/avm-eac_redmine_base0/lib/avm/eac_redmine_base0/instances/runners/project_rename.rb
DELETED
|
@@ -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,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
|