avm-eac_webapp_base0 0.18.4 → 0.20.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 683ed7baaeb1bcbc7acd8f0c415e34df7dd6b9fdba08e78cc731d694c2b9368b
4
- data.tar.gz: 49b75dfb53c30b4cffd79a7be2d1ba3db7cf392975dbdabf7ed17ac6a8a092e1
3
+ metadata.gz: 53ac5790fcfa2445bf36ae5fe13ca71a821e16fb51973b3213f2e3b745e1d7ce
4
+ data.tar.gz: 61562bdd43b027d51b7a1d9312b443996109b2528ff8d53e75d5df4ae509e197
5
5
  SHA512:
6
- metadata.gz: 4379a94365a79d60ab3556923d46a9fbb72a6ebdfd2684bc3c4529652132470f3fb7ce2bc94065d6ddac35af23fae7cc3a9f7319812fefe32ce2d524a250a7d8
7
- data.tar.gz: 618d481135df74e371c6f87f257dc312fad4eebe2d5c90cf6bbf046b60c9ac2cc2d278251170841985f26f4c4a60dddf5b532d1dd7646561e25c813e74419643
6
+ metadata.gz: 88322f8afe6c7a37ffe644b5144bdc7b62abd8832b060ab22df5623e6cbd611f0b4d8e159855221ab06c1e37334a901c98eda615df24b70f0b1cb77443dd179e
7
+ data.tar.gz: 4acbbe6ef000d0892662ec16cf96321b46f768bc44751373fd5269034a58ccdfbd4bc4266885a8a5b5ec5cd4bb470732b54e02e201834c48cc302b14afe115f3
@@ -14,7 +14,7 @@ module Avm
14
14
 
15
15
  def file_apply(file)
16
16
  ::Avm::EacWebappBase0::FileFormats::Css::FileApply.new(file).perform
17
- super(file)
17
+ super
18
18
  end
19
19
  end
20
20
  end
@@ -17,7 +17,7 @@ module Avm
17
17
  beautify path, input, output
18
18
  end
19
19
  ::FileUtils.mv(temppath, path)
20
- super(path)
20
+ super
21
21
  end
22
22
 
23
23
  private
@@ -14,7 +14,7 @@ module Avm
14
14
  ::Avm::EacWebappBase0::Executables.js_beautify.command.append(
15
15
  ['--indent-size=2', '--end-with-newline', '--replace', *files]
16
16
  ).system!
17
- super(files)
17
+ super
18
18
  end
19
19
  end
20
20
  end
@@ -12,7 +12,7 @@ module Avm
12
12
 
13
13
  def internal_apply(files)
14
14
  format_command(files).system!
15
- super(files)
15
+ super
16
16
  end
17
17
 
18
18
  def format_command(files)
@@ -0,0 +1,30 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_webapp_base0/instances/deploy_info'
4
+ require 'avm/instances/base'
5
+
6
+ module Avm
7
+ module EacWebappBase0
8
+ module Instances
9
+ class Base < ::Avm::Instances::Base
10
+ module DeployInfo
11
+ common_concern
12
+
13
+ DEPLOY_INFO_SUBPATH = '.deploy.yaml'
14
+
15
+ # @return [Avm::EacWebappBase0::Instances::DeployInfo]
16
+ def deploy_info
17
+ ::Avm::EacWebappBase0::Instances::DeployInfo.from_string(
18
+ host_env.command('cat', deploy_info_path).execute!
19
+ )
20
+ end
21
+
22
+ # @return [Pathname]
23
+ def deploy_info_path
24
+ install_path.to_pathname.join(DEPLOY_INFO_SUBPATH)
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
30
+ end
@@ -18,7 +18,7 @@ module Avm
18
18
  ::Avm::Files::Appender
19
19
  .new
20
20
  .variables_source_set(variables_source)
21
- .append_templatized_directory(template.path)
21
+ .append_templatized_directory(template)
22
22
  .append_templatized_directories(appended_directories)
23
23
  .append_file_content(version_target_path, version)
24
24
  .write_appended_on(build_dir)
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/eac_webapp_base0/instances/deploy_info'
4
+ require 'avm/eac_webapp_base0/instances/base/deploy_info'
5
+
6
+ module Avm
7
+ module EacWebappBase0
8
+ module Instances
9
+ class Deploy
10
+ module Info
11
+ # @return [Hash]
12
+ def deploy_info
13
+ ::Avm::EacWebappBase0::Instances::DeployInfo.from_hash(
14
+ {
15
+ instance_id: instance.id,
16
+ time: ::Time.now,
17
+ commit_id: commit_reference,
18
+ commit_refs: version_git_refs,
19
+ version: version_number
20
+ }
21
+ )
22
+ end
23
+
24
+ # @return [String]
25
+ def version
26
+ deploy_info.to_yaml
27
+ end
28
+
29
+ def version_git_refs
30
+ git_remote_hashs.select { |_name, sha1| sha1 == commit_reference }.keys
31
+ .map { |ref| ref.gsub(%r{\Arefs/}, '') }.reject { |ref| ref == 'HEAD' }
32
+ end
33
+
34
+ # @return [String, nil]
35
+ def version_number
36
+ instance.application.local_source.version.if_present(&:to_s)
37
+ end
38
+
39
+ # @return [String]
40
+ def version_target_path
41
+ ::Avm::EacWebappBase0::Instances::Base::DeployInfo::DEPLOY_INFO_SUBPATH
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -6,6 +6,8 @@ module Avm
6
6
  class Deploy
7
7
  module Scm
8
8
  DEFAULT_REMOTE_NAME = 'origin'
9
+ DEFAULT_REMOTE_READ = true
10
+ DEFAULT_REMOTE_WRITE = true
9
11
 
10
12
  def commit_reference_uncached
11
13
  git_fetch
@@ -16,6 +18,8 @@ module Avm
16
18
  end
17
19
 
18
20
  def git_fetch_uncached
21
+ return unless remote_read?
22
+
19
23
  infom "Fetching remote \"#{git_remote_name}\" from \"#{git_repository_path}\"..."
20
24
  git.remote(git_remote_name).fetch
21
25
  end
@@ -33,6 +37,8 @@ module Avm
33
37
  end
34
38
 
35
39
  def git_remote_hashs_uncached
40
+ return {} unless remote_read?
41
+
36
42
  git.remote(git_remote_name).ls.hashes
37
43
  end
38
44
 
@@ -61,6 +67,16 @@ module Avm
61
67
  remote_branch('master')
62
68
  end
63
69
 
70
+ # @return [Boolean]
71
+ def remote_read?
72
+ options.if_key(OPTION_REMOTE_READ, DEFAULT_REMOTE_READ).to_bool
73
+ end
74
+
75
+ # @return [Boolean]
76
+ def remote_write?
77
+ options.if_key(OPTION_REMOTE_WRITE, DEFAULT_REMOTE_WRITE).to_bool
78
+ end
79
+
64
80
  # @return [Avm::Scms::Base]
65
81
  def scm
66
82
  instance.application.local_source.scm
@@ -20,7 +20,8 @@ module Avm
20
20
 
21
21
  include ::Avm::Entries::Jobs::Base
22
22
 
23
- lists.add_symbol :option, :appended_directories, :no_request_test, :reference
23
+ lists.add_symbol :option, :appended_directories, :no_request_test, :reference,
24
+ :remote_read, :remote_write
24
25
 
25
26
  def option_list
26
27
  ::Avm::EacWebappBase0::Instances::Deploy.lists.option
@@ -47,6 +48,8 @@ module Avm
47
48
  end
48
49
 
49
50
  def assert_instance_branch
51
+ return unless remote_write?
52
+
50
53
  infom 'Setting instance branch...'
51
54
  git.command('push', git_remote_name, "#{commit_reference}:refs/heads/#{instance.id}",
52
55
  '-f').execute!
@@ -0,0 +1,37 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'eac_ruby_utils/core_ext'
4
+
5
+ module Avm
6
+ module EacWebappBase0
7
+ module Instances
8
+ class DeployInfo
9
+ class << self
10
+ # @param hash [Hash]
11
+ # @return [Avm::EacWebappBase0::Instances::DeployInfo]
12
+ def from_hash(hash)
13
+ new(hash)
14
+ end
15
+
16
+ # @return string [String]
17
+ # @return [Avm::EacWebappBase0::Instances::DeployInfo]
18
+ def from_string(string)
19
+ from_hash(::EacRubyUtils::Yaml.load(string))
20
+ end
21
+ end
22
+
23
+ common_constructor :data do
24
+ self.data = data.with_indifferent_access
25
+ end
26
+
27
+ # @return [Hash]
28
+ delegate :to_h, to: :data
29
+
30
+ # @return [String]
31
+ def to_yaml
32
+ ::EacRubyUtils::Yaml.dump(to_h)
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -14,6 +14,9 @@ module Avm
14
14
  arg_opt '-r', '--reference', 'Git reference to deploy.'
15
15
  arg_opt '-a', '--append-dirs', 'Append directories to deploy (List separated by ":").'
16
16
  bool_opt '-T', '--no-request-test', 'Do not test web interface after deploy.'
17
+ bool_opt '--no-remote', 'Shortcut to "--no-remote-read --no-remote-write"'
18
+ bool_opt '--no-remote-read', 'Do not attempt to read on remote repository.'
19
+ bool_opt '--no-remote-write', 'Do not attempt to write on remote repository.'
17
20
  end
18
21
 
19
22
  def deploy_class
@@ -34,7 +37,18 @@ module Avm
34
37
  def deploy_options
35
38
  { reference: parsed.reference,
36
39
  appended_directories: ::Avm::PathString.paths(parsed.append_dirs),
37
- no_request_test: parsed.no_request_test? }
40
+ no_request_test: parsed.no_request_test?, remote_read: remote_read?,
41
+ remote_write: remote_write? }
42
+ end
43
+
44
+ # @return [Boolean]
45
+ def remote_read?
46
+ !(parsed.no_remote_read? || parsed.no_remote?)
47
+ end
48
+
49
+ # @return [Boolean]
50
+ def remote_write?
51
+ !(parsed.no_remote_write? || parsed.no_remote?)
38
52
  end
39
53
  end
40
54
  end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'avm/instances/runner'
4
+ require 'avm/path_string'
5
+ require 'eac_cli/core_ext'
6
+
7
+ module Avm
8
+ module EacWebappBase0
9
+ module Instances
10
+ module Runners
11
+ class DeployInfo
12
+ runner_with :help, :output_item do
13
+ desc 'Fetch instance\'s last deploy information.'
14
+ end
15
+
16
+ def run
17
+ run_output
18
+ end
19
+
20
+ # @return [Hash]
21
+ def item_hash
22
+ instance.deploy_info.to_h
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module EacWebappBase0
5
- VERSION = '0.18.4'
5
+ VERSION = '0.20.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-eac_webapp_base0
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.18.4
4
+ version: 0.20.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Put here the authors
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-02-29 00:00:00.000000000 Z
11
+ date: 2024-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,40 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.86'
20
- - - ">="
21
- - !ruby/object:Gem::Version
22
- version: 0.86.2
19
+ version: '0.93'
23
20
  type: :runtime
24
21
  prerelease: false
25
22
  version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - "~>"
28
25
  - !ruby/object:Gem::Version
29
- version: '0.86'
30
- - - ">="
31
- - !ruby/object:Gem::Version
32
- version: 0.86.2
26
+ version: '0.93'
33
27
  - !ruby/object:Gem::Dependency
34
28
  name: avm-eac_generic_base0
35
29
  requirement: !ruby/object:Gem::Requirement
36
30
  requirements:
37
31
  - - "~>"
38
32
  - !ruby/object:Gem::Version
39
- version: '0.12'
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: 0.12.2
33
+ version: '0.13'
43
34
  type: :runtime
44
35
  prerelease: false
45
36
  version_requirements: !ruby/object:Gem::Requirement
46
37
  requirements:
47
38
  - - "~>"
48
39
  - !ruby/object:Gem::Version
49
- version: '0.12'
50
- - - ">="
51
- - !ruby/object:Gem::Version
52
- version: 0.12.2
40
+ version: '0.13'
53
41
  - !ruby/object:Gem::Dependency
54
42
  name: avm-eac_postgresql_base0
55
43
  requirement: !ruby/object:Gem::Requirement
@@ -77,6 +65,9 @@ dependencies:
77
65
  - - "~>"
78
66
  - !ruby/object:Gem::Version
79
67
  version: '0.5'
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 0.5.1
80
71
  type: :runtime
81
72
  prerelease: false
82
73
  version_requirements: !ruby/object:Gem::Requirement
@@ -84,34 +75,37 @@ dependencies:
84
75
  - - "~>"
85
76
  - !ruby/object:Gem::Version
86
77
  version: '0.5'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 0.5.1
87
81
  - !ruby/object:Gem::Dependency
88
82
  name: avm-files
89
83
  requirement: !ruby/object:Gem::Requirement
90
84
  requirements:
91
85
  - - "~>"
92
86
  - !ruby/object:Gem::Version
93
- version: '0.7'
87
+ version: '0.8'
94
88
  type: :runtime
95
89
  prerelease: false
96
90
  version_requirements: !ruby/object:Gem::Requirement
97
91
  requirements:
98
92
  - - "~>"
99
93
  - !ruby/object:Gem::Version
100
- version: '0.7'
94
+ version: '0.8'
101
95
  - !ruby/object:Gem::Dependency
102
96
  name: eac_ruby_utils
103
97
  requirement: !ruby/object:Gem::Requirement
104
98
  requirements:
105
99
  - - "~>"
106
100
  - !ruby/object:Gem::Version
107
- version: '0.121'
101
+ version: '0.122'
108
102
  type: :runtime
109
103
  prerelease: false
110
104
  version_requirements: !ruby/object:Gem::Requirement
111
105
  requirements:
112
106
  - - "~>"
113
107
  - !ruby/object:Gem::Version
114
- version: '0.121'
108
+ version: '0.122'
115
109
  - !ruby/object:Gem::Dependency
116
110
  name: htmlbeautifier
117
111
  requirement: !ruby/object:Gem::Requirement
@@ -167,14 +161,16 @@ files:
167
161
  - lib/avm/eac_webapp_base0/instances/apache_path.rb
168
162
  - lib/avm/eac_webapp_base0/instances/base.rb
169
163
  - lib/avm/eac_webapp_base0/instances/base/apache.rb
164
+ - lib/avm/eac_webapp_base0/instances/base/deploy_info.rb
170
165
  - lib/avm/eac_webapp_base0/instances/base/install.rb
171
166
  - lib/avm/eac_webapp_base0/instances/deploy.rb
172
167
  - lib/avm/eac_webapp_base0/instances/deploy/appended_directories.rb
173
168
  - lib/avm/eac_webapp_base0/instances/deploy/build.rb
169
+ - lib/avm/eac_webapp_base0/instances/deploy/info.rb
174
170
  - lib/avm/eac_webapp_base0/instances/deploy/scm.rb
175
171
  - lib/avm/eac_webapp_base0/instances/deploy/setup_files_unit.rb
176
- - lib/avm/eac_webapp_base0/instances/deploy/version.rb
177
172
  - lib/avm/eac_webapp_base0/instances/deploy/write_on_target.rb
173
+ - lib/avm/eac_webapp_base0/instances/deploy_info.rb
178
174
  - lib/avm/eac_webapp_base0/instances/processes.rb
179
175
  - lib/avm/eac_webapp_base0/instances/processes/web_server.rb
180
176
  - lib/avm/eac_webapp_base0/instances/runners.rb
@@ -182,6 +178,7 @@ files:
182
178
  - lib/avm/eac_webapp_base0/instances/runners/apache_path.rb
183
179
  - lib/avm/eac_webapp_base0/instances/runners/data/load.rb
184
180
  - lib/avm/eac_webapp_base0/instances/runners/deploy.rb
181
+ - lib/avm/eac_webapp_base0/instances/runners/deploy_info.rb
185
182
  - lib/avm/eac_webapp_base0/sources.rb
186
183
  - lib/avm/eac_webapp_base0/sources/base.rb
187
184
  - lib/avm/eac_webapp_base0/version.rb
@@ -1,26 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Avm
4
- module EacWebappBase0
5
- module Instances
6
- class Deploy
7
- module Version
8
- VERSION_TARGET_PATH = 'VERSION'
9
-
10
- def version
11
- ([::Time.now, commit_reference] + version_git_refs).join('|')
12
- end
13
-
14
- def version_git_refs
15
- git_remote_hashs.select { |_name, sha1| sha1 == commit_reference }.keys
16
- .map { |ref| ref.gsub(%r{\Arefs/}, '') }.reject { |ref| ref == 'HEAD' }
17
- end
18
-
19
- def version_target_path
20
- VERSION_TARGET_PATH
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end