eac_tools 0.46.0 → 0.47.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 +4 -4
- data/Gemfile.lock +14 -13
- data/lib/eac_tools/version.rb +1 -1
- data/sub/avm-eac_php_base0/avm-eac_php_base0.gemspec +3 -2
- data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/instances/base.rb +14 -0
- data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/instances.rb +11 -0
- data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/source_generators/base.rb +28 -0
- data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/source_generators.rb +11 -0
- data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/sources/base.rb +17 -0
- data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/sources.rb +11 -0
- data/sub/avm-eac_php_base0/lib/avm/eac_php_base0/version.rb +1 -1
- data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/source_generators/base_spec.rb +8 -0
- data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/source_generators/base_spec_files/no_options/index.php +0 -0
- data/sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/sources/base_spec.rb +7 -0
- data/sub/avm-eac_php_base0/template/avm/eac_php_base0/source_generators/base/index.php +0 -0
- data/sub/avm-git/avm-git.gemspec +3 -3
- data/sub/avm-git/lib/avm/git/launcher/base/underlying.rb +1 -1
- data/sub/avm-git/lib/avm/git/version.rb +1 -1
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/append_command_options.rb +38 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/concat.rb +17 -2
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/debugging.rb +19 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/envvars.rb +3 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execution.rb +52 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command.rb +28 -84
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/{command/exec_error.rb → execution_error.rb} +1 -3
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/execution_result.rb +45 -0
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/version.rb +1 -1
- data/sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command_spec.rb +93 -0
- metadata +24 -16
- data/sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb +0 -47
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3418d6903a368e33472395b53a332d45ba663fef893c5e657f68ccb5bfc22c17
|
|
4
|
+
data.tar.gz: 53b2d9b4c6a88ae9371176752c14bcaa623537f685f9400080c61ec274cee36e
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 37e4b8af6160ac8056ad0c724639b304260ce2c4b47fb405488a8fa529d01d3535264b0b28a06bff17f4adfd62eb47253f4d81c20e52e77637100ff05937aa05
|
|
7
|
+
data.tar.gz: 1c72ca7d308189e28abc9bd8b1f01ff7d02a74841bffe80374f43fd9da5be792c6c90fce48ceef451bff95f56117fe95f5dde5d3869393696d2d8ae4dece2edf
|
data/Gemfile.lock
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
eac_tools (0.
|
|
5
|
-
avm (~> 0.
|
|
4
|
+
eac_tools (0.47.0)
|
|
5
|
+
avm (~> 0.58)
|
|
6
6
|
avm-eac_asciidoctor_base0 (~> 0.12)
|
|
7
7
|
avm-eac_generic_base0 (~> 0.8)
|
|
8
8
|
avm-eac_latex_base0 (~> 0.3)
|
|
9
|
-
avm-eac_php_base0 (~> 0.
|
|
9
|
+
avm-eac_php_base0 (~> 0.4)
|
|
10
10
|
avm-eac_rails_base0 (~> 0.8, >= 0.8.1)
|
|
11
11
|
avm-eac_rails_base1 (~> 0.7, >= 0.7.1)
|
|
12
12
|
avm-eac_redmine_base0 (~> 0.17)
|
|
@@ -15,7 +15,7 @@ PATH
|
|
|
15
15
|
avm-eac_webapp_base0 (~> 0.12, >= 0.12.3)
|
|
16
16
|
avm-eac_wordpress_base0 (~> 0.2, >= 0.2.1)
|
|
17
17
|
avm-tools (~> 0.142, >= 0.142.6)
|
|
18
|
-
eac_ruby_utils (~> 0.
|
|
18
|
+
eac_ruby_utils (~> 0.108)
|
|
19
19
|
|
|
20
20
|
PATH
|
|
21
21
|
remote: sub/aranha-parsers
|
|
@@ -58,9 +58,10 @@ PATH
|
|
|
58
58
|
PATH
|
|
59
59
|
remote: sub/avm-eac_php_base0
|
|
60
60
|
specs:
|
|
61
|
-
avm-eac_php_base0 (0.
|
|
62
|
-
avm-eac_generic_base0 (~> 0.
|
|
63
|
-
|
|
61
|
+
avm-eac_php_base0 (0.4.0)
|
|
62
|
+
avm-eac_generic_base0 (~> 0.8)
|
|
63
|
+
avm-eac_webapp_base0 (~> 0.12, >= 0.12.3)
|
|
64
|
+
eac_ruby_utils (~> 0.108)
|
|
64
65
|
|
|
65
66
|
PATH
|
|
66
67
|
remote: sub/avm-eac_postgresql_base0
|
|
@@ -152,11 +153,11 @@ PATH
|
|
|
152
153
|
PATH
|
|
153
154
|
remote: sub/avm-git
|
|
154
155
|
specs:
|
|
155
|
-
avm-git (0.10.
|
|
156
|
-
avm (~> 0.
|
|
156
|
+
avm-git (0.10.1)
|
|
157
|
+
avm (~> 0.57)
|
|
157
158
|
avm-files (~> 0.6)
|
|
158
|
-
eac_git (~> 0.
|
|
159
|
-
eac_ruby_utils (~> 0.
|
|
159
|
+
eac_git (~> 0.14)
|
|
160
|
+
eac_ruby_utils (~> 0.108)
|
|
160
161
|
git (~> 1.12)
|
|
161
162
|
|
|
162
163
|
PATH
|
|
@@ -242,7 +243,7 @@ PATH
|
|
|
242
243
|
PATH
|
|
243
244
|
remote: sub/eac_ruby_utils
|
|
244
245
|
specs:
|
|
245
|
-
eac_ruby_utils (0.
|
|
246
|
+
eac_ruby_utils (0.108.0)
|
|
246
247
|
activesupport (>= 4, < 7)
|
|
247
248
|
addressable (~> 2.8, >= 2.8.1)
|
|
248
249
|
bundler
|
|
@@ -337,7 +338,7 @@ GEM
|
|
|
337
338
|
parslet (2.0.0)
|
|
338
339
|
public_suffix (5.0.0)
|
|
339
340
|
racc (1.6.0)
|
|
340
|
-
rack (3.0.
|
|
341
|
+
rack (3.0.1)
|
|
341
342
|
rainbow (3.1.1)
|
|
342
343
|
rchardet (1.8.0)
|
|
343
344
|
rexml (3.2.5)
|
data/lib/eac_tools/version.rb
CHANGED
|
@@ -12,8 +12,9 @@ Gem::Specification.new do |s|
|
|
|
12
12
|
|
|
13
13
|
s.files = Dir['{lib,locale,template}/**/*']
|
|
14
14
|
|
|
15
|
-
s.add_dependency 'avm-eac_generic_base0', '~> 0.
|
|
16
|
-
s.add_dependency '
|
|
15
|
+
s.add_dependency 'avm-eac_generic_base0', '~> 0.8'
|
|
16
|
+
s.add_dependency 'avm-eac_webapp_base0', '~> 0.12', '>= 0.12.3'
|
|
17
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.108'
|
|
17
18
|
|
|
18
19
|
s.add_development_dependency 'eac_ruby_gem_support', '~> 0.5', '>= 0.5.1'
|
|
19
20
|
end
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'avm/eac_webapp_base0/instances/base'
|
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
|
5
|
+
|
|
6
|
+
module Avm
|
|
7
|
+
module EacPhpBase0
|
|
8
|
+
module Instances
|
|
9
|
+
class Base < ::Avm::EacWebappBase0::Instances::Base
|
|
10
|
+
FILES_UNITS = {}.freeze
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'avm/source_generators/base'
|
|
4
|
+
require 'eac_templates/core_ext'
|
|
5
|
+
require 'eac_ruby_utils/core_ext'
|
|
6
|
+
|
|
7
|
+
module Avm
|
|
8
|
+
module EacPhpBase0
|
|
9
|
+
module SourceGenerators
|
|
10
|
+
class Base < ::Avm::SourceGenerators::Base
|
|
11
|
+
OPTIONS = {}.freeze
|
|
12
|
+
|
|
13
|
+
enable_speaker
|
|
14
|
+
enable_simple_cache
|
|
15
|
+
|
|
16
|
+
class << self
|
|
17
|
+
def option_list
|
|
18
|
+
OPTIONS.inject(super) { |a, e| a.option(*e) }
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def perform
|
|
23
|
+
template.apply(self, target_path)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'avm/eac_webapp_base0/sources/base'
|
|
4
|
+
require 'eac_ruby_utils/core_ext'
|
|
5
|
+
|
|
6
|
+
module Avm
|
|
7
|
+
module EacPhpBase0
|
|
8
|
+
module Sources
|
|
9
|
+
class Base < ::Avm::EacWebappBase0::Sources::Base
|
|
10
|
+
# @return [Boolean]
|
|
11
|
+
def valid?
|
|
12
|
+
path.glob('*.php').any?(&:file?)
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
File without changes
|
|
File without changes
|
data/sub/avm-git/avm-git.gemspec
CHANGED
|
@@ -12,10 +12,10 @@ Gem::Specification.new do |s|
|
|
|
12
12
|
|
|
13
13
|
s.files = Dir['{lib}/**/*']
|
|
14
14
|
|
|
15
|
-
s.add_dependency 'avm', '~> 0.
|
|
15
|
+
s.add_dependency 'avm', '~> 0.57'
|
|
16
16
|
s.add_dependency 'avm-files', '~> 0.6'
|
|
17
|
-
s.add_dependency 'eac_git', '~> 0.
|
|
18
|
-
s.add_dependency 'eac_ruby_utils', '~> 0.
|
|
17
|
+
s.add_dependency 'eac_git', '~> 0.14'
|
|
18
|
+
s.add_dependency 'eac_ruby_utils', '~> 0.108'
|
|
19
19
|
s.add_dependency 'git', '~> 1.12'
|
|
20
20
|
|
|
21
21
|
s.add_development_dependency 'aranha-parsers', '~> 0.8', '>= 0.8.5'
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
|
4
|
+
require 'shellwords'
|
|
5
|
+
|
|
6
|
+
module EacRubyUtils
|
|
7
|
+
module Envs
|
|
8
|
+
class Command
|
|
9
|
+
class AppendCommandOptions
|
|
10
|
+
enable_method_class
|
|
11
|
+
common_constructor :command, :command_line, :options
|
|
12
|
+
|
|
13
|
+
def result
|
|
14
|
+
r = command_line
|
|
15
|
+
r = input.command + ' | ' + r if input
|
|
16
|
+
r = "cat #{Shellwords.escape(input_file)} | #{r}" if input_file
|
|
17
|
+
r += ' > ' + Shellwords.escape(output_file) if output_file
|
|
18
|
+
r
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# @return [EacRubyUtils::Envs::Command, nil]
|
|
22
|
+
def input
|
|
23
|
+
options[:input]
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
# @return [Pathname, nil]
|
|
27
|
+
def input_file
|
|
28
|
+
options[:input_file].if_present(&:to_pathname)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @return [Pathname, nil]
|
|
32
|
+
def output_file
|
|
33
|
+
options[:output_file].if_present(&:to_pathname)
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
@@ -6,18 +6,33 @@ module EacRubyUtils
|
|
|
6
6
|
module Envs
|
|
7
7
|
class Command
|
|
8
8
|
module Concat
|
|
9
|
+
AND_OPERATOR = '&&'
|
|
10
|
+
BEFORE_OPERATOR = ';'
|
|
11
|
+
OR_OPERATOR = '||'
|
|
12
|
+
PIPE_OPERATOR = '|'
|
|
13
|
+
|
|
9
14
|
def concat(operator, other_command)
|
|
10
15
|
duplicate_by_extra_options(concat: ::EacRubyUtils::Struct.new(
|
|
11
16
|
operator: operator, command: other_command
|
|
12
17
|
))
|
|
13
18
|
end
|
|
14
19
|
|
|
20
|
+
# @return [EacRubyUtils::Envs::Command]
|
|
21
|
+
def and(other_command)
|
|
22
|
+
concat(AND_OPERATOR, other_command)
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# @return [EacRubyUtils::Envs::Command]
|
|
26
|
+
def before(other_command)
|
|
27
|
+
concat(BEFORE_OPERATOR, other_command)
|
|
28
|
+
end
|
|
29
|
+
|
|
15
30
|
def or(other_command)
|
|
16
|
-
concat(
|
|
31
|
+
concat(OR_OPERATOR, other_command)
|
|
17
32
|
end
|
|
18
33
|
|
|
19
34
|
def pipe(other_command)
|
|
20
|
-
concat(
|
|
35
|
+
concat(PIPE_OPERATOR, other_command)
|
|
21
36
|
end
|
|
22
37
|
|
|
23
38
|
private
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module EacRubyUtils
|
|
4
|
+
module Envs
|
|
5
|
+
class Command
|
|
6
|
+
module Debugging
|
|
7
|
+
def debug?
|
|
8
|
+
ENV['DEBUG'].to_s.strip != ''
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
# Print a message if debugging is enabled.
|
|
12
|
+
def debug_print(message)
|
|
13
|
+
message = message.to_s
|
|
14
|
+
puts message.if_respond(:light_red, message) if debug?
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'eac_ruby_utils/envs/execution_error'
|
|
4
|
+
require 'eac_ruby_utils/envs/execution_result'
|
|
5
|
+
require 'eac_ruby_utils/envs/process'
|
|
6
|
+
require 'eac_ruby_utils/envs/spawn'
|
|
7
|
+
require 'pp'
|
|
8
|
+
|
|
9
|
+
module EacRubyUtils
|
|
10
|
+
module Envs
|
|
11
|
+
class Command
|
|
12
|
+
module Execution
|
|
13
|
+
def execute!(options = {})
|
|
14
|
+
options[:exit_outputs] = status_results.merge(options[:exit_outputs].presence || {})
|
|
15
|
+
er = ::EacRubyUtils::Envs::ExecutionResult.new(execute(options), options)
|
|
16
|
+
return er.result if er.success?
|
|
17
|
+
|
|
18
|
+
raise ::EacRubyUtils::Envs::ExecutionError,
|
|
19
|
+
"execute! command failed: #{self}\n#{er.r.pretty_inspect}"
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def execute(options = {})
|
|
23
|
+
c = command(options)
|
|
24
|
+
debug_print("BEFORE: #{c}")
|
|
25
|
+
t1 = Time.now
|
|
26
|
+
r = ::EacRubyUtils::Envs::Process.new(c).to_h
|
|
27
|
+
i = Time.now - t1
|
|
28
|
+
debug_print("AFTER [#{i}]: #{c}")
|
|
29
|
+
r
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def spawn(options = {})
|
|
33
|
+
c = command(options)
|
|
34
|
+
debug_print("SPAWN: #{c}")
|
|
35
|
+
::EacRubyUtils::Envs::Spawn.new(c)
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
def system!(options = {})
|
|
39
|
+
return if system(options)
|
|
40
|
+
|
|
41
|
+
raise ::EacRubyUtils::Envs::ExecutionError, "system! command failed: #{self}"
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
def system(options = {})
|
|
45
|
+
c = command(options)
|
|
46
|
+
debug_print(c)
|
|
47
|
+
Kernel.system(c)
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -1,128 +1,72 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
3
|
require 'eac_ruby_utils/core_ext'
|
|
4
|
-
require 'eac_ruby_utils/envs/process'
|
|
5
|
-
require 'eac_ruby_utils/envs/spawn'
|
|
6
|
-
require 'pp'
|
|
7
4
|
require 'shellwords'
|
|
8
5
|
|
|
9
6
|
module EacRubyUtils
|
|
10
7
|
module Envs
|
|
11
8
|
class Command
|
|
12
|
-
require_sub __FILE__, include_modules: true
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
@
|
|
16
|
-
@
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
9
|
+
require_sub __FILE__, include_modules: true, require_dependency: true
|
|
10
|
+
|
|
11
|
+
class << self
|
|
12
|
+
# @param command [Array]
|
|
13
|
+
# @return [Array]
|
|
14
|
+
def sanitize_initialize_arguments(arguments)
|
|
15
|
+
if arguments.count == 1 && arguments.first.is_a?(Array)
|
|
16
|
+
arguments.first
|
|
17
|
+
elsif arguments.is_a?(Array)
|
|
18
|
+
arguments
|
|
19
|
+
else
|
|
20
|
+
raise "Invalid argument command: #{arguments}|#{arguments.class}"
|
|
21
|
+
end
|
|
23
22
|
end
|
|
24
23
|
end
|
|
25
24
|
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
common_constructor :env, :args, :extra_options, default: [{}] do
|
|
26
|
+
self.extra_options = extra_options.with_indifferent_access
|
|
27
|
+
self.args = self.class.sanitize_initialize_arguments(args)
|
|
28
28
|
end
|
|
29
29
|
|
|
30
30
|
def append(args)
|
|
31
|
-
duplicate_by_command(
|
|
31
|
+
duplicate_by_command(self.args + args)
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
def prepend(args)
|
|
35
|
-
duplicate_by_command(args +
|
|
35
|
+
duplicate_by_command(args + self.args)
|
|
36
36
|
end
|
|
37
37
|
|
|
38
38
|
def to_s
|
|
39
|
-
"#{
|
|
39
|
+
"#{args} [ENV: #{env}]"
|
|
40
40
|
end
|
|
41
41
|
|
|
42
42
|
def command(options = {})
|
|
43
|
-
c = @command
|
|
44
|
-
c = c.map { |x| escape(x) }.join(' ') if c.is_a?(Enumerable)
|
|
45
43
|
append_command_options(
|
|
46
|
-
|
|
47
|
-
append_chdir(append_concat(append_envvars(c)))
|
|
48
|
-
),
|
|
44
|
+
env.command_line(command_line_without_env),
|
|
49
45
|
options
|
|
50
46
|
)
|
|
51
47
|
end
|
|
52
48
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
raise ::EacRubyUtils::Envs::Command::ExecError,
|
|
59
|
-
"execute! command failed: #{self}\n#{er.r.pretty_inspect}"
|
|
60
|
-
end
|
|
61
|
-
|
|
62
|
-
def execute(options = {})
|
|
63
|
-
c = command(options)
|
|
64
|
-
debug_print("BEFORE: #{c}")
|
|
65
|
-
t1 = Time.now
|
|
66
|
-
r = ::EacRubyUtils::Envs::Process.new(c).to_h
|
|
67
|
-
i = Time.now - t1
|
|
68
|
-
debug_print("AFTER [#{i}]: #{c}")
|
|
69
|
-
r
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
def spawn(options = {})
|
|
73
|
-
c = command(options)
|
|
74
|
-
debug_print("SPAWN: #{c}")
|
|
75
|
-
::EacRubyUtils::Envs::Spawn.new(c)
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
def system!(options = {})
|
|
79
|
-
return if system(options)
|
|
80
|
-
|
|
81
|
-
raise ::EacRubyUtils::Envs::Command::ExecError, "system! command failed: #{self}"
|
|
82
|
-
end
|
|
83
|
-
|
|
84
|
-
def system(options = {})
|
|
85
|
-
c = command(options)
|
|
86
|
-
debug_print(c)
|
|
87
|
-
Kernel.system(c)
|
|
49
|
+
# @return [String]
|
|
50
|
+
def command_line_without_env
|
|
51
|
+
c = args
|
|
52
|
+
c = c.map { |x| escape(x) }.join(' ') if c.is_a?(Enumerable)
|
|
53
|
+
append_chdir(append_concat(append_envvars(c)))
|
|
88
54
|
end
|
|
89
55
|
|
|
90
56
|
protected
|
|
91
57
|
|
|
92
58
|
def duplicate(command, extra_options)
|
|
93
|
-
self.class.new(
|
|
59
|
+
self.class.new(env, command, extra_options)
|
|
94
60
|
end
|
|
95
61
|
|
|
96
62
|
private
|
|
97
63
|
|
|
98
|
-
attr_reader :extra_options
|
|
99
|
-
|
|
100
64
|
def duplicate_by_command(new_command)
|
|
101
|
-
duplicate(new_command,
|
|
65
|
+
duplicate(new_command, extra_options)
|
|
102
66
|
end
|
|
103
67
|
|
|
104
68
|
def duplicate_by_extra_options(set_extra_options)
|
|
105
|
-
duplicate(
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
def debug?
|
|
109
|
-
ENV['DEBUG'].to_s.strip != ''
|
|
110
|
-
end
|
|
111
|
-
|
|
112
|
-
# Print a message if debugging is enabled.
|
|
113
|
-
def debug_print(message)
|
|
114
|
-
message = message.to_s
|
|
115
|
-
puts message.if_respond(:light_red, message) if debug?
|
|
116
|
-
end
|
|
117
|
-
|
|
118
|
-
def append_command_options(command, options)
|
|
119
|
-
command = options[:input].command + ' | ' + command if options[:input]
|
|
120
|
-
if options[:input_file]
|
|
121
|
-
command = "cat #{Shellwords.escape(options[:input_file])}" \
|
|
122
|
-
" | #{command}"
|
|
123
|
-
end
|
|
124
|
-
command += ' > ' + Shellwords.escape(options[:output_file]) if options[:output_file]
|
|
125
|
-
command
|
|
69
|
+
duplicate(args, extra_options.merge(set_extra_options))
|
|
126
70
|
end
|
|
127
71
|
|
|
128
72
|
def escape(arg)
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'eac_ruby_utils/envs/execution_error'
|
|
4
|
+
|
|
5
|
+
module EacRubyUtils
|
|
6
|
+
module Envs
|
|
7
|
+
class ExecutionResult
|
|
8
|
+
attr_reader :r, :options
|
|
9
|
+
|
|
10
|
+
def initialize(result, options)
|
|
11
|
+
@r = result
|
|
12
|
+
@options = options
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def result
|
|
16
|
+
return exit_code_zero_result if exit_code_zero?
|
|
17
|
+
return expected_error_result if expected_error?
|
|
18
|
+
|
|
19
|
+
raise ::EacRubyUtils::Envs::ExecutionError, 'Failed!'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def success?
|
|
23
|
+
exit_code_zero? || expected_error?
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
private
|
|
27
|
+
|
|
28
|
+
def exit_code_zero?
|
|
29
|
+
r[:exit_code]&.zero?
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
def exit_code_zero_result
|
|
33
|
+
r[options[:output] || :stdout]
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
def expected_error_result
|
|
37
|
+
options[:exit_outputs][r[:exit_code]]
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def expected_error?
|
|
41
|
+
options[:exit_outputs].is_a?(Hash) && options[:exit_outputs].key?(r[:exit_code])
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'eac_ruby_utils/envs/command'
|
|
4
|
+
require 'eac_ruby_utils/envs/executable'
|
|
5
|
+
require 'eac_ruby_utils/envs/local_env'
|
|
6
|
+
|
|
7
|
+
RSpec.describe ::EacRubyUtils::Envs::Command do
|
|
8
|
+
let(:env) { ::EacRubyUtils::Envs::LocalEnv.new }
|
|
9
|
+
let(:echo) { env.executable('echo', '--version') }
|
|
10
|
+
let(:cat) { env.executable('cat', '--version') }
|
|
11
|
+
let(:not_existing_file) { ::Pathname.new('a_file_that_not_exists') }
|
|
12
|
+
let(:ok_command) { echo.command('-n', ok_command_output) }
|
|
13
|
+
let(:ok_command_output) { 'THE OUTPUT' }
|
|
14
|
+
let(:error_command) { cat.command(not_existing_file) }
|
|
15
|
+
|
|
16
|
+
it { expect(echo).to exist }
|
|
17
|
+
it { expect(cat).to exist }
|
|
18
|
+
it { expect(not_existing_file).not_to exist }
|
|
19
|
+
|
|
20
|
+
describe '#execute' do
|
|
21
|
+
it do
|
|
22
|
+
expect(ok_command.execute).to(
|
|
23
|
+
eq({ command: 'echo -n THE\\ OUTPUT', stdout: ok_command_output, stderr: '', exit_code: 0 })
|
|
24
|
+
)
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
it do
|
|
28
|
+
expect(error_command.execute).to(
|
|
29
|
+
eq({ command: 'cat a_file_that_not_exists', stdout: '',
|
|
30
|
+
stderr: "cat: a_file_that_not_exists: No such file or directory\n", exit_code: 256 })
|
|
31
|
+
)
|
|
32
|
+
end
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
describe '#execute!' do
|
|
36
|
+
it { expect(ok_command.execute!).to eq(ok_command_output) }
|
|
37
|
+
|
|
38
|
+
it do
|
|
39
|
+
expect { error_command.execute! }.to(
|
|
40
|
+
raise_error(::EacRubyUtils::Envs::ExecutionError)
|
|
41
|
+
)
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
describe '#system' do
|
|
46
|
+
it { expect(ok_command.system).to eq(true) }
|
|
47
|
+
it { expect(error_command.system).to eq(false) }
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
describe '#system!' do
|
|
51
|
+
it { expect { ok_command.system! }.not_to raise_error }
|
|
52
|
+
|
|
53
|
+
it do
|
|
54
|
+
expect { error_command.system! }.to(
|
|
55
|
+
raise_error(::EacRubyUtils::Envs::ExecutionError)
|
|
56
|
+
)
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
describe '#or' do
|
|
61
|
+
it do
|
|
62
|
+
expect(ok_command.or(error_command).execute).to(
|
|
63
|
+
eq({ command: 'echo -n THE\\ OUTPUT || cat a_file_that_not_exists',
|
|
64
|
+
stdout: ok_command_output, stderr: '', exit_code: 0 })
|
|
65
|
+
)
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
it do
|
|
69
|
+
expect(error_command.or(ok_command).execute).to(
|
|
70
|
+
eq({ command: 'cat a_file_that_not_exists || echo -n THE\\ OUTPUT',
|
|
71
|
+
stdout: ok_command_output,
|
|
72
|
+
stderr: "cat: a_file_that_not_exists: No such file or directory\n", exit_code: 0 })
|
|
73
|
+
)
|
|
74
|
+
end
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
describe '#pipe' do
|
|
78
|
+
it do
|
|
79
|
+
expect(ok_command.pipe(error_command).execute).to(
|
|
80
|
+
eq({ command: 'echo -n THE\\ OUTPUT | cat a_file_that_not_exists', stdout: '',
|
|
81
|
+
stderr: "cat: a_file_that_not_exists: No such file or directory\n", exit_code: 256 })
|
|
82
|
+
)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it do
|
|
86
|
+
expect(error_command.pipe(ok_command).execute).to(
|
|
87
|
+
eq({ command: 'cat a_file_that_not_exists | echo -n THE\\ OUTPUT',
|
|
88
|
+
stdout: ok_command_output,
|
|
89
|
+
stderr: "cat: a_file_that_not_exists: No such file or directory\n", exit_code: 0 })
|
|
90
|
+
)
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: eac_tools
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.47.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: 2022-11-
|
|
11
|
+
date: 2022-11-23 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: avm
|
|
@@ -16,14 +16,14 @@ dependencies:
|
|
|
16
16
|
requirements:
|
|
17
17
|
- - "~>"
|
|
18
18
|
- !ruby/object:Gem::Version
|
|
19
|
-
version: '0.
|
|
19
|
+
version: '0.58'
|
|
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.
|
|
26
|
+
version: '0.58'
|
|
27
27
|
- !ruby/object:Gem::Dependency
|
|
28
28
|
name: avm-eac_asciidoctor_base0
|
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -72,14 +72,14 @@ dependencies:
|
|
|
72
72
|
requirements:
|
|
73
73
|
- - "~>"
|
|
74
74
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0.
|
|
75
|
+
version: '0.4'
|
|
76
76
|
type: :runtime
|
|
77
77
|
prerelease: false
|
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
79
|
requirements:
|
|
80
80
|
- - "~>"
|
|
81
81
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0.
|
|
82
|
+
version: '0.4'
|
|
83
83
|
- !ruby/object:Gem::Dependency
|
|
84
84
|
name: avm-eac_rails_base0
|
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -234,20 +234,14 @@ dependencies:
|
|
|
234
234
|
requirements:
|
|
235
235
|
- - "~>"
|
|
236
236
|
- !ruby/object:Gem::Version
|
|
237
|
-
version: '0.
|
|
238
|
-
- - ">="
|
|
239
|
-
- !ruby/object:Gem::Version
|
|
240
|
-
version: 0.107.1
|
|
237
|
+
version: '0.108'
|
|
241
238
|
type: :runtime
|
|
242
239
|
prerelease: false
|
|
243
240
|
version_requirements: !ruby/object:Gem::Requirement
|
|
244
241
|
requirements:
|
|
245
242
|
- - "~>"
|
|
246
243
|
- !ruby/object:Gem::Version
|
|
247
|
-
version: '0.
|
|
248
|
-
- - ">="
|
|
249
|
-
- !ruby/object:Gem::Version
|
|
250
|
-
version: 0.107.1
|
|
244
|
+
version: '0.108'
|
|
251
245
|
- !ruby/object:Gem::Dependency
|
|
252
246
|
name: eac_ruby_gem_support
|
|
253
247
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -420,6 +414,12 @@ files:
|
|
|
420
414
|
- sub/avm-eac_php_base0/lib/avm/eac_php_base0/executables.rb
|
|
421
415
|
- sub/avm-eac_php_base0/lib/avm/eac_php_base0/file_formats.rb
|
|
422
416
|
- sub/avm-eac_php_base0/lib/avm/eac_php_base0/file_formats/base.rb
|
|
417
|
+
- sub/avm-eac_php_base0/lib/avm/eac_php_base0/instances.rb
|
|
418
|
+
- sub/avm-eac_php_base0/lib/avm/eac_php_base0/instances/base.rb
|
|
419
|
+
- sub/avm-eac_php_base0/lib/avm/eac_php_base0/source_generators.rb
|
|
420
|
+
- sub/avm-eac_php_base0/lib/avm/eac_php_base0/source_generators/base.rb
|
|
421
|
+
- sub/avm-eac_php_base0/lib/avm/eac_php_base0/sources.rb
|
|
422
|
+
- sub/avm-eac_php_base0/lib/avm/eac_php_base0/sources/base.rb
|
|
423
423
|
- sub/avm-eac_php_base0/lib/avm/eac_php_base0/version.rb
|
|
424
424
|
- sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec.rb
|
|
425
425
|
- sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_code.php.source
|
|
@@ -430,8 +430,12 @@ files:
|
|
|
430
430
|
- sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_html_code.php.target
|
|
431
431
|
- sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_iso88591_code.php.source
|
|
432
432
|
- sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/file_formats/base_spec_files/php_iso88591_code.php.target
|
|
433
|
+
- sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/source_generators/base_spec.rb
|
|
434
|
+
- sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/source_generators/base_spec_files/no_options/index.php
|
|
435
|
+
- sub/avm-eac_php_base0/spec/lib/avm/eac_php_base0/sources/base_spec.rb
|
|
433
436
|
- sub/avm-eac_php_base0/spec/rubocop_spec.rb
|
|
434
437
|
- sub/avm-eac_php_base0/spec/spec_helper.rb
|
|
438
|
+
- sub/avm-eac_php_base0/template/avm/eac_php_base0/source_generators/base/index.php
|
|
435
439
|
- sub/avm-eac_postgresql_base0/Gemfile
|
|
436
440
|
- sub/avm-eac_postgresql_base0/avm-eac_postgresql_base0.gemspec
|
|
437
441
|
- sub/avm-eac_postgresql_base0/lib/avm/eac_postgresql_base0.rb
|
|
@@ -1592,12 +1596,15 @@ files:
|
|
|
1592
1596
|
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs.rb
|
|
1593
1597
|
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/base_env.rb
|
|
1594
1598
|
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command.rb
|
|
1599
|
+
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/append_command_options.rb
|
|
1595
1600
|
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/concat.rb
|
|
1601
|
+
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/debugging.rb
|
|
1596
1602
|
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/envvars.rb
|
|
1597
|
-
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/
|
|
1598
|
-
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execute_result.rb
|
|
1603
|
+
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/execution.rb
|
|
1599
1604
|
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/command/extra_options.rb
|
|
1600
1605
|
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/executable.rb
|
|
1606
|
+
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/execution_error.rb
|
|
1607
|
+
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/execution_result.rb
|
|
1601
1608
|
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/file.rb
|
|
1602
1609
|
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/local_env.rb
|
|
1603
1610
|
- sub/eac_ruby_utils/lib/eac_ruby_utils/envs/process.rb
|
|
@@ -1743,6 +1750,7 @@ files:
|
|
|
1743
1750
|
- sub/eac_ruby_utils/spec/lib/eac_ruby_utils/compare_by_spec.rb
|
|
1744
1751
|
- sub/eac_ruby_utils/spec/lib/eac_ruby_utils/custom_format_spec.rb
|
|
1745
1752
|
- sub/eac_ruby_utils/spec/lib/eac_ruby_utils/enum_spec.rb
|
|
1753
|
+
- sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/command_spec.rb
|
|
1746
1754
|
- sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/executable_spec.rb
|
|
1747
1755
|
- sub/eac_ruby_utils/spec/lib/eac_ruby_utils/envs/ssh_env_spec.rb
|
|
1748
1756
|
- sub/eac_ruby_utils/spec/lib/eac_ruby_utils/fs/extname_spec.rb
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require 'eac_ruby_utils/envs/command/exec_error'
|
|
4
|
-
|
|
5
|
-
module EacRubyUtils
|
|
6
|
-
module Envs
|
|
7
|
-
class Command
|
|
8
|
-
class ExecuteResult
|
|
9
|
-
attr_reader :r, :options
|
|
10
|
-
|
|
11
|
-
def initialize(result, options)
|
|
12
|
-
@r = result
|
|
13
|
-
@options = options
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def result
|
|
17
|
-
return exit_code_zero_result if exit_code_zero?
|
|
18
|
-
return expected_error_result if expected_error?
|
|
19
|
-
|
|
20
|
-
raise ::EacRubyUtils::Envs::Command::ExecError, 'Failed!'
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def success?
|
|
24
|
-
exit_code_zero? || expected_error?
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
private
|
|
28
|
-
|
|
29
|
-
def exit_code_zero?
|
|
30
|
-
r[:exit_code]&.zero?
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def exit_code_zero_result
|
|
34
|
-
r[options[:output] || :stdout]
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def expected_error_result
|
|
38
|
-
options[:exit_outputs][r[:exit_code]]
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def expected_error?
|
|
42
|
-
options[:exit_outputs].is_a?(Hash) && options[:exit_outputs].key?(r[:exit_code])
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|