diff --git a/lib/mrsk/cli/app.rb b/lib/mrsk/cli/app.rb index ed9c19e2..efd0dc38 100644 --- a/lib/mrsk/cli/app.rb +++ b/lib/mrsk/cli/app.rb @@ -134,13 +134,7 @@ class Mrsk::Cli::App < Mrsk::Cli::Base roles = MRSK.roles_on(host) roles.each do |role| - stale_versions = \ - capture_with_info(*MRSK.app(role: role).list_versions, raise_on_non_zero_exit: false) - .split("\n") - .map(&:strip) - .drop(1) - - stale_versions.each do |version| + stale_versions(role: role).each do |version| if stop puts_by_host host, "Stopping stale container for role #{role} with version #{version}" execute *MRSK.app(role: role).stop(version: version), raise_on_non_zero_exit: false diff --git a/lib/mrsk/sshkit_with_ext.rb b/lib/mrsk/sshkit_with_ext.rb index 075c2643..d657a07c 100644 --- a/lib/mrsk/sshkit_with_ext.rb +++ b/lib/mrsk/sshkit_with_ext.rb @@ -1,7 +1,17 @@ require "sshkit" require "sshkit/dsl" +module AppHelper + def stale_versions(role:) + capture_with_info(*MRSK.app(role: role).list_versions, raise_on_non_zero_exit: false) + .split("\n") + .drop(1) + end +end + class SSHKit::Backend::Abstract + include AppHelper + def capture_with_info(*args, **kwargs) capture(*args, **kwargs, verbosity: Logger::INFO) end