From 1ecf92ff88ee4ea2755fae81b2df08a052bc9aa8 Mon Sep 17 00:00:00 2001 From: Adam Grare Date: Wed, 16 Oct 2024 12:43:33 -0400 Subject: [PATCH] Add a block option to checkout_git_repository --- .../configuration_script_source.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/models/manageiq/providers/embedded_automation_manager/configuration_script_source.rb b/app/models/manageiq/providers/embedded_automation_manager/configuration_script_source.rb index 19e041b5985..cdb9274b5af 100644 --- a/app/models/manageiq/providers/embedded_automation_manager/configuration_script_source.rb +++ b/app/models/manageiq/providers/embedded_automation_manager/configuration_script_source.rb @@ -85,11 +85,22 @@ def sync raise NotImplementedError, N_("sync must be implemented in a subclass") end - def checkout_git_repository(target_directory) + def checkout_git_repository(target_directory = nil) return if git_repository.nil? + target_directory_given = !!target_directory + target_directory ||= Dir.mktmpdir + git_repository.update_repo git_repository.checkout(scm_branch, target_directory) + + return target_directory unless block_given? + + begin + yield Pathname.new(target_directory) + ensure + FileUtils.rm_rf(target_directory) unless target_directory_given + end end private