avm-files 0.8.1 → 0.9.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: 756611429da59f150cac533b9034ce4980fd1a9a49f96c0abb36918a2fd70fed
4
- data.tar.gz: 8cb10396cec9e310e106f375a471a1325985a7f0c9c7cef04853095fd1ed9299
3
+ metadata.gz: '04864a6b9053c4c93b0e242ae4842148ee33486d43516a21976e4b277af6da58'
4
+ data.tar.gz: 050fb9e0bd47fd6b1881d65964eafaee350f9d22a730b2338b44e9e9f43a24db
5
5
  SHA512:
6
- metadata.gz: 0eb0df54f9a8064aff5c243a35e9c4ab83cf86598e66e864bf4449c6c3474b875981a1339299cff820419e8aa56b3533859141a41d66152f54294369ea762107
7
- data.tar.gz: 48014a52fe99a6c1bff357e9645ffcd5b5011431355ea92265edba9d43841451cfd4a5171f4b401ac59c433a6c8c9dcbb4fbae04e28185331690407270d5bb7f
6
+ metadata.gz: ce0c5699ef55a109cd8b7c6a8391f6f1271e34b7f5ea028d01009d75e1816571a9cfd90e2956fc362ec955a973601c9e7e28cdd531f8a6c42a99e3665ed88929
7
+ data.tar.gz: cd4d2e4f581dbe1ec907dd94e4ceff9c2b6bb1ba0381fde1a43325efb4f29206079d767b11b431395f115cfe66b8da680b483e1d8fd179b4d96a2ba8abf7be12
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Avm
4
4
  module Files
5
- VERSION = '0.8.1'
5
+ VERSION = '0.9.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: avm-files
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.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-08-22 00:00:00.000000000 Z
11
+ date: 2025-06-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: avm
@@ -16,111 +16,40 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.93'
19
+ version: '0.95'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.93'
26
+ version: '0.95'
27
27
  - !ruby/object:Gem::Dependency
28
- name: eac_cli
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - "~>"
32
- - !ruby/object:Gem::Version
33
- version: '0.42'
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - "~>"
39
- - !ruby/object:Gem::Version
40
- version: '0.42'
41
- - !ruby/object:Gem::Dependency
42
- name: eac_fs
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '0.18'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '0.18'
55
- - !ruby/object:Gem::Dependency
56
- name: eac_ruby_utils
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '0.122'
62
- type: :runtime
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '0.122'
69
- - !ruby/object:Gem::Dependency
70
- name: eac_templates
28
+ name: eac_ruby_gem_support
71
29
  requirement: !ruby/object:Gem::Requirement
72
30
  requirements:
73
31
  - - "~>"
74
32
  - !ruby/object:Gem::Version
75
- version: '0.7'
33
+ version: '0.11'
76
34
  - - ">="
77
35
  - !ruby/object:Gem::Version
78
- version: 0.7.1
79
- type: :runtime
36
+ version: 0.11.1
37
+ type: :development
80
38
  prerelease: false
81
39
  version_requirements: !ruby/object:Gem::Requirement
82
40
  requirements:
83
41
  - - "~>"
84
42
  - !ruby/object:Gem::Version
85
- version: '0.7'
43
+ version: '0.11'
86
44
  - - ">="
87
45
  - !ruby/object:Gem::Version
88
- version: 0.7.1
89
- - !ruby/object:Gem::Dependency
90
- name: eac_ruby_gem_support
91
- requirement: !ruby/object:Gem::Requirement
92
- requirements:
93
- - - "~>"
94
- - !ruby/object:Gem::Version
95
- version: '0.10'
96
- type: :development
97
- prerelease: false
98
- version_requirements: !ruby/object:Gem::Requirement
99
- requirements:
100
- - - "~>"
101
- - !ruby/object:Gem::Version
102
- version: '0.10'
46
+ version: 0.11.1
103
47
  description:
104
48
  email:
105
49
  executables: []
106
50
  extensions: []
107
51
  extra_rdoc_files: []
108
52
  files:
109
- - lib/avm/files.rb
110
- - lib/avm/files/appendable.rb
111
- - lib/avm/files/appendable/file_content.rb
112
- - lib/avm/files/appendable/plain_directory.rb
113
- - lib/avm/files/appendable/resource_base.rb
114
- - lib/avm/files/appendable/tar_output_command.rb
115
- - lib/avm/files/appendable/templatized_directory.rb
116
- - lib/avm/files/appender.rb
117
- - lib/avm/files/deploy.rb
118
- - lib/avm/files/runner_with.rb
119
- - lib/avm/files/runner_with/file_replacer.rb
120
- - lib/avm/files/runner_with/filesystem_renamer.rb
121
- - lib/avm/files/runner_with/filesystem_traverser.rb
122
- - lib/avm/files/text_replacer.rb
123
- - lib/avm/files/text_replacer/gsub.rb
124
53
  - lib/avm/files/version.rb
125
54
  homepage:
126
55
  licenses: []
@@ -143,5 +72,5 @@ requirements: []
143
72
  rubygems_version: 3.1.6
144
73
  signing_key:
145
74
  specification_version: 4
146
- summary: Put here de description.
75
+ summary: 'DEPRECATED: use gem "avm" instead.'
147
76
  test_files: []
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'avm/files/appendable/resource_base'
5
-
6
- module Avm
7
- module Files
8
- module Appendable
9
- class FileContent < ::Avm::Files::Appendable::ResourceBase
10
- attr_reader :target_path, :content
11
-
12
- def initialize(deploy, target_path, content)
13
- super(deploy)
14
- @target_path = target_path
15
- @content = content
16
- end
17
-
18
- def write_on(target_dir)
19
- target_dir.join(target_path).write(content)
20
- end
21
-
22
- protected
23
-
24
- # @return [Enumerable<Symbol>]
25
- def to_s_attributes
26
- %i[target_path content]
27
- end
28
- end
29
- end
30
- end
31
- end
@@ -1,30 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'avm/files/appendable/resource_base'
5
-
6
- module Avm
7
- module Files
8
- module Appendable
9
- class PlainDirectory < ::Avm::Files::Appendable::ResourceBase
10
- attr_reader :source_path
11
-
12
- def initialize(appender, source_path)
13
- super(appender)
14
- @source_path = source_path.to_pathname
15
- end
16
-
17
- def write_on(target_dir)
18
- raise "\"#{source_path}\" is not a directory" unless source_path.directory?
19
-
20
- ::FileUtils.cp_r("#{source_path}/.", target_dir.to_path)
21
- end
22
-
23
- # @return [Enumerable<Symbol>]
24
- def to_s_attributes
25
- [:source_path]
26
- end
27
- end
28
- end
29
- end
30
- end
@@ -1,19 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module Files
7
- module Appendable
8
- class ResourceBase
9
- acts_as_abstract :to_s_attributes
10
- common_constructor :appender
11
-
12
- def to_s
13
- v_to_s = to_s_attributes.map { |k| "#{k}: #{send(k)}" }.join(', ')
14
- "#{self.class.name}[#{v_to_s}]"
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'eac_ruby_utils/envs'
5
- require 'avm/files/appendable/resource_base'
6
-
7
- module Avm
8
- module Files
9
- module Appendable
10
- class TarOutputCommand < ::Avm::Files::Appendable::ResourceBase
11
- attr_reader :command
12
-
13
- def initialize(appender, command)
14
- super(appender)
15
- @command = command
16
- end
17
-
18
- def write_on(target_dir)
19
- command.pipe(
20
- ::EacRubyUtils::Envs.local.command('tar', '-xf', '-', '-C', target_dir)
21
- ).execute!
22
- end
23
-
24
- # @return [Enumerable<Symbol>]
25
- def to_s_attributes
26
- [:command]
27
- end
28
- end
29
- end
30
- end
31
- end
@@ -1,40 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
- require 'avm/files/appendable/resource_base'
5
- require 'eac_templates/variables/directory'
6
-
7
- module Avm
8
- module Files
9
- module Appendable
10
- class TemplatizedDirectory < ::Avm::Files::Appendable::ResourceBase
11
- common_constructor :appender, :source_path, super_args: -> { [appender] }
12
-
13
- # @return [Object]
14
- def applier
15
- return source_path if source_path.respond_to?(:apply)
16
-
17
- applier_from_path
18
- end
19
-
20
- # @return [EacTemplates::Variables::Directory]
21
- def applier_from_path
22
- raise "\"#{source_path}\" is not a directory" unless ::File.directory?(source_path)
23
-
24
- ::EacTemplates::Variables::Directory.new(source_path)
25
- end
26
-
27
- def write_on(target_dir)
28
- raise 'Variables source not set' if appender.variables_source.blank?
29
-
30
- applier.apply(appender.variables_source, target_dir)
31
- end
32
-
33
- # @return [Enumerable<Symbol>]
34
- def to_s_attributes
35
- [:source_path]
36
- end
37
- end
38
- end
39
- end
40
- end
@@ -1,55 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module Files
7
- module Appendable
8
- require_sub __FILE__
9
-
10
- attr_reader :variables_source
11
-
12
- def appended
13
- @appended ||= []
14
- end
15
-
16
- def append_templatized_directories(directories)
17
- directories.each { |directory| append_templatized_directory(directory) }
18
- self
19
- end
20
-
21
- def append_plain_directory(directory)
22
- appended << ::Avm::Files::Appendable::PlainDirectory.new(self, directory)
23
- self
24
- end
25
-
26
- def append_tar_output_command(tar_command)
27
- appended << ::Avm::Files::Appendable::TarOutputCommand.new(self, tar_command)
28
- self
29
- end
30
-
31
- def append_templatized_directory(directory)
32
- appended << ::Avm::Files::Appendable::TemplatizedDirectory.new(self, directory)
33
- self
34
- end
35
-
36
- def append_file_content(target_path, content)
37
- appended << ::Avm::Files::Appendable::FileContent
38
- .new(self, target_path, content)
39
- self
40
- end
41
-
42
- def variables_source_set(source)
43
- @variables_source = source
44
- self
45
- end
46
-
47
- def write_appended_on(target_dir)
48
- target_dir = target_dir.to_pathname
49
- raise "\"#{target_dir}\" is not a directory" unless target_dir.directory?
50
-
51
- appended.each { |append| append.write_on(target_dir) }
52
- end
53
- end
54
- end
55
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'avm/files/appendable'
4
-
5
- module Avm
6
- module Files
7
- class Appender
8
- include ::Avm::Files::Appendable
9
- end
10
- end
11
- end
@@ -1,71 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'addressable'
4
- require 'avm/files/appendable'
5
- require 'eac_ruby_utils/core_ext'
6
-
7
- module Avm
8
- module Files
9
- class Deploy
10
- include ::Avm::Files::Appendable
11
- enable_simple_cache
12
-
13
- attr_reader :build_dir, :target_env, :target_path
14
-
15
- common_constructor :target_env, :target_path
16
-
17
- def run
18
- on_build_dir do
19
- copy_content_to_build_dir
20
- mkdir_target
21
- clear_content
22
- send_untar_package
23
- set_target_permission
24
- end
25
- end
26
-
27
- private
28
-
29
- def on_build_dir
30
- @build_dir = ::Dir.mktmpdir
31
- yield
32
- ensure
33
- ::FileUtils.rm_rf(@build_dir)
34
- end
35
-
36
- def copy_content_to_build_dir
37
- write_appended_on(build_dir)
38
- end
39
-
40
- def mkdir_target
41
- target_env.command('mkdir', '-p', target_path).execute!
42
- end
43
-
44
- def clear_content
45
- target_env.command(
46
- 'find', target_path, '-mindepth', '1', '-maxdepth', '1', '-exec', 'rm', '-rf', '{}', ';'
47
- ).execute!
48
- end
49
-
50
- def send_untar_package
51
- tar_build_command.pipe(untar_build_command).execute!
52
- end
53
-
54
- def set_target_permission
55
- target_env.command('chmod', '755', target_path).execute!
56
- end
57
-
58
- def tar_build_command
59
- source_env.command('tar', '-czO', '-C', build_dir, '.')
60
- end
61
-
62
- def untar_build_command
63
- target_env.command('tar', '-xzf', '-', '-C', target_path)
64
- end
65
-
66
- def source_env
67
- ::EacRubyUtils::Envs.local
68
- end
69
- end
70
- end
71
- end
@@ -1,34 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/core_ext'
4
- require 'avm/files/text_replacer'
5
- require 'avm/files/runner_with/filesystem_traverser'
6
-
7
- module Avm
8
- module Files
9
- module RunnerWith
10
- module FileReplacer
11
- common_concern do
12
- include ::Avm::Files::RunnerWith::FilesystemTraverser
13
- include TopMethods
14
- end
15
-
16
- module TopMethods
17
- def text_replacer
18
- ::Avm::Files::TextReplacer.new
19
- end
20
-
21
- def replace_file?(_file)
22
- true
23
- end
24
-
25
- def traverser_check_file(file)
26
- return unless replace_file?(file)
27
-
28
- infov 'Changed', file if text_replacer.file_apply(file)
29
- end
30
- end
31
- end
32
- end
33
- end
34
- end
@@ -1,103 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/core_ext'
4
-
5
- module Avm
6
- module Files
7
- module RunnerWith
8
- module FilesystemRenamer
9
- common_concern do
10
- runner_with :confirmation, :filesystem_traverser
11
- prepend PrependMethods
12
- end
13
-
14
- class RenameFile
15
- enable_speaker
16
- common_constructor :runner, :file
17
- delegate :path, :target_path, :valid?, to: :file
18
-
19
- CONFIRM_MESSAGE = 'Rename?'
20
-
21
- def show
22
- if rename?
23
- puts [target_path_to_s, '<='.green, path_to_s].join(' ')
24
- else
25
- puts path_to_s
26
- end
27
- end
28
-
29
- def rename
30
- return unless rename?
31
-
32
- show
33
- do_rename if runner.confirm?(CONFIRM_MESSAGE)
34
- end
35
-
36
- # @return [Boolean]
37
- def rename?
38
- path.to_pathname != target_path.to_pathname
39
- end
40
-
41
- private
42
-
43
- def do_rename
44
- ::FileUtils.mv(path, target_path)
45
- end
46
-
47
- # @return [String]
48
- def path_to_s
49
- path.basename.to_path.light_black
50
- end
51
-
52
- # @return [String]
53
- def target_path_to_s
54
- target_path.relative_path_from(path.dirname).to_path
55
- end
56
- end
57
-
58
- module PrependMethods
59
- # @param path [Pathname]
60
- # @return [void]
61
- def traverser_check_file(path)
62
- file = RenameFile.new(self, file_class.new(path))
63
- files << file if file.valid?
64
- end
65
- end
66
-
67
- FILE_WRAPPER_CLASS_BASENAME = 'FileWrapper'
68
-
69
- # @return [Class]
70
- def file_class
71
- self.class.const_get(FILE_WRAPPER_CLASS_BASENAME)
72
- end
73
-
74
- # @return [void]
75
- def run_filesystem_renamer
76
- self.files = []
77
- run_filesystem_traverser
78
- show_files
79
- rename_files
80
- success 'Done'
81
- end
82
-
83
- # @return [void]
84
- def show_files
85
- infov 'Files found', files.count
86
- files.each(&:show)
87
- end
88
-
89
- # @return [void]
90
- def rename_files
91
- return if parsed.no? || files.none?(&:rename?)
92
-
93
- infom 'Renaming files...'
94
- files.each(&:rename)
95
- end
96
-
97
- private
98
-
99
- attr_accessor :files
100
- end
101
- end
102
- end
103
- end
@@ -1,54 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_cli/runner'
4
- require 'eac_fs/traversable'
5
- require 'eac_ruby_utils/core_ext'
6
- require 'eac_ruby_utils/settings_provider'
7
-
8
- module Avm
9
- module Files
10
- module RunnerWith
11
- module FilesystemTraverser
12
- DEFAULT_DEFAULT_TRAVERSER_RECURSIVE = false
13
-
14
- common_concern do
15
- include ::EacCli::Runner
16
- include ::EacFs::Traversable
17
- enable_settings_provider
18
- include TopMethods
19
- runner_definition do
20
- bool_opt '-R', '--recursive', 'Recursive.'
21
- bool_opt '--no-recursive', 'No recursive.'
22
- pos_arg :paths, optional: true, repeat: true
23
- end
24
- end
25
-
26
- module TopMethods
27
- def on_none_path_informed
28
- infom 'Warning: none path informed'
29
- end
30
-
31
- def paths
32
- parsed.paths.map(&:to_pathname)
33
- end
34
-
35
- def run_filesystem_traverser
36
- if paths.any?
37
- paths.each { |path| traverser_check_path(path) }
38
- else
39
- on_none_path_informed
40
- end
41
- end
42
-
43
- def traverser_recursive
44
- return false if parsed.no_recursive?
45
- return true if parsed.recursive?
46
-
47
- setting_value(:default_traverser_recursive, required: false)
48
- .if_not_nil(DEFAULT_DEFAULT_TRAVERSER_RECURSIVE)
49
- end
50
- end
51
- end
52
- end
53
- end
54
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module Files
7
- module RunnerWith
8
- require_sub __FILE__
9
- end
10
- end
11
- end
@@ -1,24 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module Files
7
- class TextReplacer
8
- class Gsub
9
- common_constructor :from, :to do
10
- self.from = from
11
- self.to = to
12
- end
13
-
14
- def apply(input)
15
- input.gsub(from, to)
16
- end
17
-
18
- def to_s
19
- "\"#{from}\" => \"#{to}\""
20
- end
21
- end
22
- end
23
- end
24
- end
@@ -1,32 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module Files
7
- class TextReplacer
8
- require_sub __FILE__
9
- enable_immutable
10
-
11
- immutable_accessor :replacement, type: :array
12
-
13
- def apply(input)
14
- replacements.inject(input) { |a, e| e.apply(a) }
15
- end
16
-
17
- def file_apply(file)
18
- file = file.to_pathname
19
- input = file.read
20
- output = apply(file.read)
21
- return false if output == input
22
-
23
- file.write(output)
24
- true
25
- end
26
-
27
- def gsub(from, to)
28
- replacement(::Avm::Files::TextReplacer::Gsub.new(from, to))
29
- end
30
- end
31
- end
32
- end
data/lib/avm/files.rb DELETED
@@ -1,9 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'eac_ruby_utils/core_ext'
4
-
5
- module Avm
6
- module Files
7
- require_sub __FILE__
8
- end
9
- end