avm-tools 0.47.0 → 0.48.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/lib/avm/git/issue/complete.rb +1 -1
- data/lib/avm/git/revision_test.rb +2 -2
- data/lib/avm/rails.rb +9 -0
- data/lib/avm/rails/runners.rb +11 -0
- data/lib/avm/rails/runners/bundle.rb +35 -0
- data/lib/avm/ruby.rb +0 -20
- data/lib/avm/stereotypes/eac_redmine_base0/deploy.rb +2 -2
- data/lib/avm/tools/runner/eac_rails_base0/bundle.rb +14 -0
- data/lib/avm/tools/runner/eac_redmine_base0/bundle.rb +2 -24
- data/lib/avm/tools/runner/files/format.rb +1 -1
- data/lib/avm/tools/runner/git.rb +1 -1
- data/lib/avm/tools/version.rb +1 -1
- data/lib/eac_launcher/git/base.rb +11 -5
- data/lib/eac_launcher/git/base/class_methods.rb +26 -0
- data/lib/eac_launcher/git/base/dirty_files.rb +30 -0
- data/lib/eac_launcher/git/base/remotes.rb +38 -0
- data/lib/eac_launcher/git/base/underlying.rb +10 -0
- metadata +9 -4
- data/lib/avm/patches/eac_launcher_git_base.rb +0 -77
- data/lib/eac_launcher/git/base/_remotes.rb +0 -36
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7ebefeec62ed2a18b49480f8da27d9582ab7c4bf6f71e19d0c2c2a82a7ec87ec
|
4
|
+
data.tar.gz: 1616f697714aecc0ea58b6695a8d7672b79e384c352a9e0ec1ece91daf88667c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17fbb28c4bdaf19ca33c1db1cb3f0d9678dd476f5804f972c19fff2e0ab0aae151568b2e82ce46a6da6b524682de4df11b0d231606d61ce0a1fe67c089490262
|
7
|
+
data.tar.gz: 8fda39f66fb0d7e2108245b33e76d7f7053223572b0571534f57cdc5f1632ddd595b1f0a510bfc453a61286f2fee2b5fc3e8d786ce9f587bd16a6334e1f84833
|
@@ -1,8 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'avm/fs_cache'
|
4
|
-
require 'avm/ruby'
|
5
4
|
require 'eac_ruby_utils/core_ext'
|
5
|
+
require 'eac_ruby_utils/ruby'
|
6
6
|
|
7
7
|
module Avm
|
8
8
|
module Git
|
@@ -57,7 +57,7 @@ module Avm
|
|
57
57
|
def run_test
|
58
58
|
infom "Running test command \"#{::Shellwords.join(test_command_args)}\"" \
|
59
59
|
" on \"#{git_absolute_path}\"..."
|
60
|
-
result = ::
|
60
|
+
result = ::EacRubyUtils::Ruby.on_clean_environment { test_command.execute }
|
61
61
|
infom 'Test done'
|
62
62
|
write_result_cache(result)
|
63
63
|
end
|
data/lib/avm/rails.rb
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_ruby_utils/console/docopt_runner'
|
5
|
+
require 'shellwords'
|
6
|
+
|
7
|
+
module Avm
|
8
|
+
module Rails
|
9
|
+
module Runners
|
10
|
+
class Bundle < ::EacRubyUtils::Console::DocoptRunner
|
11
|
+
enable_console_speaker
|
12
|
+
|
13
|
+
DOC = <<~DOCOPT
|
14
|
+
Runs "bundle ...".
|
15
|
+
|
16
|
+
Usage:
|
17
|
+
__PROGRAM__ [<bundle-args>...]
|
18
|
+
__PROGRAM__ -h | --help
|
19
|
+
|
20
|
+
Options:
|
21
|
+
-h --help Show this screen.
|
22
|
+
DOCOPT
|
23
|
+
|
24
|
+
def run
|
25
|
+
infov 'Bundle arguments', ::Shellwords.join(bundle_args)
|
26
|
+
context(:instance).bundle(*bundle_args).system!
|
27
|
+
end
|
28
|
+
|
29
|
+
def bundle_args
|
30
|
+
options.fetch('<bundle-args>').reject { |arg| arg == '--' }
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
data/lib/avm/ruby.rb
CHANGED
@@ -5,25 +5,5 @@ require 'eac_ruby_utils/core_ext'
|
|
5
5
|
module Avm
|
6
6
|
module Ruby
|
7
7
|
require_sub __FILE__
|
8
|
-
|
9
|
-
class << self
|
10
|
-
def on_clean_environment
|
11
|
-
on_clean_envvars('BUNDLE', 'RUBY') { yield }
|
12
|
-
end
|
13
|
-
|
14
|
-
private
|
15
|
-
|
16
|
-
def on_clean_envvars(*start_with_vars)
|
17
|
-
old_values = envvars_starting_with(start_with_vars)
|
18
|
-
old_values.keys.each { |k| ENV.delete(k) } # rubocop:disable Style/HashEachMethods
|
19
|
-
yield
|
20
|
-
ensure
|
21
|
-
old_values&.each { |k, v| ENV[k] = v }
|
22
|
-
end
|
23
|
-
|
24
|
-
def envvars_starting_with(start_with_vars)
|
25
|
-
ENV.select { |k, _v| start_with_vars.any? { |var| k.start_with?(var) } }
|
26
|
-
end
|
27
|
-
end
|
28
8
|
end
|
29
9
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/ruby'
|
4
3
|
require 'avm/stereotypes/eac_webapp_base0/deploy'
|
4
|
+
require 'eac_ruby_utils/ruby'
|
5
5
|
|
6
6
|
module Avm
|
7
7
|
module Stereotypes
|
@@ -11,7 +11,7 @@ module Avm
|
|
11
11
|
|
12
12
|
def run_installer
|
13
13
|
infom 'Running installer'
|
14
|
-
::
|
14
|
+
::EacRubyUtils::Ruby.on_clean_environment do
|
15
15
|
installer_command.system!
|
16
16
|
end
|
17
17
|
end
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'avm/rails/runners/bundle'
|
4
|
+
|
5
|
+
module Avm
|
6
|
+
module Tools
|
7
|
+
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
8
|
+
class EacRailsBase0 < ::EacRubyUtils::Console::DocoptRunner
|
9
|
+
class Bundle < ::Avm::Rails::Runners::Bundle
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
@@ -1,34 +1,12 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'avm/
|
4
|
-
require 'avm/stereotypes/eac_webapp_base0/runner/deploy'
|
3
|
+
require 'avm/rails/runners/bundle'
|
5
4
|
|
6
5
|
module Avm
|
7
6
|
module Tools
|
8
7
|
class Runner < ::EacRubyUtils::Console::DocoptRunner
|
9
8
|
class EacRedmineBase0 < ::EacRubyUtils::Console::DocoptRunner
|
10
|
-
class Bundle < ::
|
11
|
-
enable_console_speaker
|
12
|
-
|
13
|
-
DOC = <<~DOCOPT
|
14
|
-
Runs "bundle ...".
|
15
|
-
|
16
|
-
Usage:
|
17
|
-
__PROGRAM__ [<bundle-args>...]
|
18
|
-
__PROGRAM__ -h | --help
|
19
|
-
|
20
|
-
Options:
|
21
|
-
-h --help Show this screen.
|
22
|
-
DOCOPT
|
23
|
-
|
24
|
-
def run
|
25
|
-
infov 'Bundle arguments', ::Shellwords.join(bundle_args)
|
26
|
-
context(:instance).bundle(*bundle_args).system!
|
27
|
-
end
|
28
|
-
|
29
|
-
def bundle_args
|
30
|
-
options.fetch('<bundle-args>').reject { |arg| arg == '--' }
|
31
|
-
end
|
9
|
+
class Bundle < ::Avm::Rails::Runners::Bundle
|
32
10
|
end
|
33
11
|
end
|
34
12
|
end
|
data/lib/avm/tools/runner/git.rb
CHANGED
data/lib/avm/tools/version.rb
CHANGED
@@ -1,19 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'eac_ruby_utils/
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
4
|
require 'eac_ruby_utils/envs'
|
5
5
|
require 'eac_launcher/paths/real'
|
6
|
-
require 'eac_launcher/git/base/underlying'
|
7
|
-
require 'eac_launcher/git/base/subrepo'
|
8
6
|
require 'eac_launcher/git/error'
|
9
7
|
|
10
8
|
module EacLauncher
|
11
9
|
module Git
|
12
10
|
class Base < ::EacLauncher::Paths::Real
|
13
|
-
|
11
|
+
require_sub __FILE__
|
12
|
+
enable_simple_cache
|
13
|
+
extend ::EacLauncher::Git::Base::ClassMethods
|
14
|
+
include ::EacLauncher::Git::Base::DirtyFiles
|
15
|
+
include ::EacLauncher::Git::Base::Remotes
|
14
16
|
include ::EacLauncher::Git::Base::Subrepo
|
15
17
|
include ::EacLauncher::Git::Base::Underlying
|
16
|
-
require_relative ::File.join(__dir__, 'base', '_remotes')
|
17
18
|
|
18
19
|
def init_bare
|
19
20
|
FileUtils.mkdir_p(self)
|
@@ -30,6 +31,11 @@ module EacLauncher
|
|
30
31
|
raise "Reference \"#{ref}\" not found"
|
31
32
|
end
|
32
33
|
|
34
|
+
# @return [Pathname]
|
35
|
+
def root_path
|
36
|
+
@root_path ||= self.class.find_root(to_s)
|
37
|
+
end
|
38
|
+
|
33
39
|
def descendant?(descendant, ancestor)
|
34
40
|
base = merge_base(descendant, ancestor)
|
35
41
|
return false if base.blank?
|
@@ -0,0 +1,26 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module EacLauncher
|
4
|
+
module Git
|
5
|
+
class Base < ::EacLauncher::Paths::Real
|
6
|
+
module ClassMethods
|
7
|
+
# @return [EacLauncher::Git::Base]
|
8
|
+
def by_root(search_base_path)
|
9
|
+
new(find_root(search_base_path).to_path)
|
10
|
+
end
|
11
|
+
|
12
|
+
# Searches the root path for the Git repository which includes +search_base_path+.
|
13
|
+
# @return [Pathname]
|
14
|
+
def find_root(search_base_path)
|
15
|
+
path = search_base_path.to_pathname.expand_path
|
16
|
+
loop do
|
17
|
+
return path if path.join('.git').exist?
|
18
|
+
raise "\".git\" not found for \"#{search_base_path}\"" if path.parent.root?
|
19
|
+
|
20
|
+
path = path.parent
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'active_support/core_ext/object'
|
4
|
+
|
5
|
+
module EacLauncher
|
6
|
+
module Git
|
7
|
+
class Base < ::EacLauncher::Paths::Real
|
8
|
+
module DirtyFiles
|
9
|
+
def dirty?
|
10
|
+
dirty_files.any?
|
11
|
+
end
|
12
|
+
|
13
|
+
def dirty_files
|
14
|
+
execute!('status', '--porcelain', '--untracked-files').each_line.map do |line|
|
15
|
+
parse_status_line(line.gsub(/\n\z/, ''))
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
private
|
20
|
+
|
21
|
+
def parse_status_line(line)
|
22
|
+
m = /\A(.)(.)\s(.+)\z/.match(line)
|
23
|
+
::Kernel.raise "Status pattern does not match \"#{line}\"" unless m
|
24
|
+
::OpenStruct.new(index: m[1], worktree: m[2], path: m[3],
|
25
|
+
absolute_path: ::File.expand_path(m[3], self))
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'eac_ruby_utils/core_ext'
|
4
|
+
require 'eac_launcher/git/remote'
|
5
|
+
|
6
|
+
module EacLauncher
|
7
|
+
module Git
|
8
|
+
class Base < ::EacLauncher::Paths::Real
|
9
|
+
module Remotes
|
10
|
+
# @return [EacLauncher::Git::Remote]
|
11
|
+
def remote(name)
|
12
|
+
::EacLauncher::Git::Remote.new(self, name)
|
13
|
+
end
|
14
|
+
|
15
|
+
def remote_hashs(remote_name)
|
16
|
+
remote(remote_name).ls
|
17
|
+
end
|
18
|
+
|
19
|
+
def remote_exist?(remote_name)
|
20
|
+
remote(remote_name).exist?
|
21
|
+
end
|
22
|
+
|
23
|
+
def assert_remote_url(remote_name, url)
|
24
|
+
r = git.remote(remote_name)
|
25
|
+
if !r.url || r.url != url
|
26
|
+
r.remove if r.url
|
27
|
+
git.add_remote(remote_name, url)
|
28
|
+
end
|
29
|
+
r
|
30
|
+
end
|
31
|
+
|
32
|
+
def remote_branch_sha(remote_name, branch_name)
|
33
|
+
remote_hashs(remote_name)["refs/heads/#{branch_name}"]
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -8,6 +8,16 @@ module EacLauncher
|
|
8
8
|
module Git
|
9
9
|
class Base < ::EacLauncher::Paths::Real
|
10
10
|
module Underlying
|
11
|
+
def command(*args)
|
12
|
+
args, _options = build_args(args)
|
13
|
+
::EacRubyUtils::Envs.local.command(*args)
|
14
|
+
end
|
15
|
+
|
16
|
+
def execute(*args)
|
17
|
+
args, options = build_args(args)
|
18
|
+
::EacRubyUtils::Envs.local.command(*args).execute(options)
|
19
|
+
end
|
20
|
+
|
11
21
|
def execute!(*args)
|
12
22
|
args, options = build_args(args)
|
13
23
|
::EacRubyUtils::Envs.local.command(*args).execute!(options)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avm-tools
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.48.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Esquilo Azul Company
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aranha-parsers
|
@@ -303,9 +303,11 @@ files:
|
|
303
303
|
- lib/avm/instances/entries/entry_reader.rb
|
304
304
|
- lib/avm/instances/entry_keys.rb
|
305
305
|
- lib/avm/patches.rb
|
306
|
-
- lib/avm/patches/eac_launcher_git_base.rb
|
307
306
|
- lib/avm/patches/object/template.rb
|
308
307
|
- lib/avm/path_string.rb
|
308
|
+
- lib/avm/rails.rb
|
309
|
+
- lib/avm/rails/runners.rb
|
310
|
+
- lib/avm/rails/runners/bundle.rb
|
309
311
|
- lib/avm/result.rb
|
310
312
|
- lib/avm/ruby.rb
|
311
313
|
- lib/avm/ruby/rubocop.rb
|
@@ -352,6 +354,7 @@ files:
|
|
352
354
|
- lib/avm/tools/runner.rb
|
353
355
|
- lib/avm/tools/runner/eac_rails_base0.rb
|
354
356
|
- lib/avm/tools/runner/eac_rails_base0/apache_host.rb
|
357
|
+
- lib/avm/tools/runner/eac_rails_base0/bundle.rb
|
355
358
|
- lib/avm/tools/runner/eac_rails_base0/data.rb
|
356
359
|
- lib/avm/tools/runner/eac_rails_base0/deploy.rb
|
357
360
|
- lib/avm/tools/runner/eac_redmine_base0.rb
|
@@ -388,7 +391,9 @@ files:
|
|
388
391
|
- lib/eac_launcher/context/settings.rb
|
389
392
|
- lib/eac_launcher/git.rb
|
390
393
|
- lib/eac_launcher/git/base.rb
|
391
|
-
- lib/eac_launcher/git/base/
|
394
|
+
- lib/eac_launcher/git/base/class_methods.rb
|
395
|
+
- lib/eac_launcher/git/base/dirty_files.rb
|
396
|
+
- lib/eac_launcher/git/base/remotes.rb
|
392
397
|
- lib/eac_launcher/git/base/subrepo.rb
|
393
398
|
- lib/eac_launcher/git/base/underlying.rb
|
394
399
|
- lib/eac_launcher/git/error.rb
|
@@ -1,77 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_launcher/git/base'
|
4
|
-
require 'eac_launcher/git/error'
|
5
|
-
require 'eac_ruby_utils/patch'
|
6
|
-
require 'eac_ruby_utils/require_sub'
|
7
|
-
::EacRubyUtils.require_sub(__FILE__)
|
8
|
-
|
9
|
-
module Avm
|
10
|
-
module Patches
|
11
|
-
module EacLauncherGitBase
|
12
|
-
extend ::ActiveSupport::Concern
|
13
|
-
|
14
|
-
included do
|
15
|
-
extend ClassMethods
|
16
|
-
include InstanceMethods
|
17
|
-
end
|
18
|
-
|
19
|
-
module ClassMethods
|
20
|
-
# @return [EacLauncher::Git::Base]
|
21
|
-
def by_root(search_base_path)
|
22
|
-
new(find_root(search_base_path).to_path)
|
23
|
-
end
|
24
|
-
|
25
|
-
# Searches the root path for the Git repository which includes +search_base_path+.
|
26
|
-
# @return [Pathname]
|
27
|
-
def find_root(search_base_path)
|
28
|
-
path = search_base_path.to_pathname.expand_path
|
29
|
-
loop do
|
30
|
-
return path if path.join('.git').exist?
|
31
|
-
raise "\".git\" not found for \"#{search_base_path}\"" if path.parent.root?
|
32
|
-
|
33
|
-
path = path.parent
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
module InstanceMethods
|
39
|
-
def execute(*args)
|
40
|
-
args, options = build_args(args)
|
41
|
-
::EacRubyUtils::Envs.local.command(*args).execute(options)
|
42
|
-
end
|
43
|
-
|
44
|
-
def command(*args)
|
45
|
-
args, _options = build_args(args)
|
46
|
-
::EacRubyUtils::Envs.local.command(*args)
|
47
|
-
end
|
48
|
-
|
49
|
-
def dirty?
|
50
|
-
dirty_files.any?
|
51
|
-
end
|
52
|
-
|
53
|
-
def dirty_files
|
54
|
-
execute!('status', '--porcelain', '--untracked-files').each_line.map do |line|
|
55
|
-
parse_status_line(line.gsub(/\n\z/, ''))
|
56
|
-
end
|
57
|
-
end
|
58
|
-
|
59
|
-
# @return [Pathname]
|
60
|
-
def root_path
|
61
|
-
@root_path ||= self.class.find_root(to_s)
|
62
|
-
end
|
63
|
-
|
64
|
-
private
|
65
|
-
|
66
|
-
def parse_status_line(line)
|
67
|
-
m = /\A(.)(.)\s(.+)\z/.match(line)
|
68
|
-
::Kernel.raise "Status pattern does not match \"#{line}\"" unless m
|
69
|
-
::OpenStruct.new(index: m[1], worktree: m[2], path: m[3],
|
70
|
-
absolute_path: ::File.expand_path(m[3], self))
|
71
|
-
end
|
72
|
-
end
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
::EacRubyUtils.patch(::EacLauncher::Git::Base, ::Avm::Patches::EacLauncherGitBase)
|
@@ -1,36 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'eac_ruby_utils/core_ext'
|
4
|
-
require 'eac_launcher/git/remote'
|
5
|
-
|
6
|
-
module EacLauncher
|
7
|
-
module Git
|
8
|
-
class Base < ::EacLauncher::Paths::Real
|
9
|
-
# @return [EacLauncher::Git::Remote]
|
10
|
-
def remote(name)
|
11
|
-
::EacLauncher::Git::Remote.new(self, name)
|
12
|
-
end
|
13
|
-
|
14
|
-
def remote_hashs(remote_name)
|
15
|
-
remote(remote_name).ls
|
16
|
-
end
|
17
|
-
|
18
|
-
def remote_exist?(remote_name)
|
19
|
-
remote(remote_name).exist?
|
20
|
-
end
|
21
|
-
|
22
|
-
def assert_remote_url(remote_name, url)
|
23
|
-
r = git.remote(remote_name)
|
24
|
-
if !r.url || r.url != url
|
25
|
-
r.remove if r.url
|
26
|
-
git.add_remote(remote_name, url)
|
27
|
-
end
|
28
|
-
r
|
29
|
-
end
|
30
|
-
|
31
|
-
def remote_branch_sha(remote_name, branch_name)
|
32
|
-
remote_hashs(remote_name)["refs/heads/#{branch_name}"]
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|