Improve clarity and intent
This commit is contained in:
@@ -16,7 +16,7 @@ class Mrsk::Cli::Build < Mrsk::Cli::Base
|
||||
|
||||
run_locally do
|
||||
begin
|
||||
if cli.dependencies
|
||||
if cli.verify_dependencies
|
||||
MRSK.with_verbosity(:debug) { execute *MRSK.builder.push }
|
||||
end
|
||||
rescue SSHKit::Command::Failed => e
|
||||
@@ -82,15 +82,17 @@ class Mrsk::Cli::Build < Mrsk::Cli::Base
|
||||
end
|
||||
end
|
||||
|
||||
desc "dependencies", "Check local dependencies"
|
||||
def dependencies
|
||||
|
||||
desc "", "" # Really a private method, but needed to be invoked from #push
|
||||
def verify_dependencies
|
||||
run_locally do
|
||||
begin
|
||||
execute *MRSK.builder.dependencies
|
||||
execute *MRSK.builder.ensure_dependencies_installed
|
||||
rescue SSHKit::Command::Failed => e
|
||||
build_error = e.message =~ /command not found/ ?
|
||||
"Docker is not installed locally" :
|
||||
"Docker buildx plugin is not installed locally"
|
||||
|
||||
raise BuildError, build_error
|
||||
end
|
||||
end
|
||||
|
||||
@@ -2,7 +2,7 @@ class Mrsk::Commands::Builder < Mrsk::Commands::Base
|
||||
delegate :create, :remove, :push, :clean, :pull, :info, to: :target
|
||||
|
||||
def name
|
||||
target.class.to_s.remove("Mrsk::Commands::Builder::").underscore
|
||||
target.class.to_s.remove("Mrsk::Commands::Builder::").underscore.inquiry
|
||||
end
|
||||
|
||||
def target
|
||||
@@ -34,26 +34,23 @@ class Mrsk::Commands::Builder < Mrsk::Commands::Base
|
||||
@multiarch_remote ||= Mrsk::Commands::Builder::Multiarch::Remote.new(config)
|
||||
end
|
||||
|
||||
def native_and_local?
|
||||
name == 'native'
|
||||
end
|
||||
|
||||
def dependencies
|
||||
if native_and_local?
|
||||
docker_version
|
||||
def ensure_dependencies_installed
|
||||
if name.native?
|
||||
ensure_docker_installed
|
||||
else
|
||||
combine \
|
||||
docker_version,
|
||||
docker_buildx_version
|
||||
ensure_docker_installed,
|
||||
ensure_buildx_installed
|
||||
end
|
||||
end
|
||||
|
||||
private
|
||||
def docker_version
|
||||
def ensure_docker_installed
|
||||
docker "--version"
|
||||
end
|
||||
|
||||
def docker_buildx_version
|
||||
def ensure_buildx_installed
|
||||
docker :buildx, "version"
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user