From 3f979d41a8872b0163f62e4d09b5487e2de8456c 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..60632e90690 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 ||= Pathname.new(Dir.mktmpdir) + git_repository.update_repo git_repository.checkout(scm_branch, target_directory) + + return target_directory unless block_given? + + begin + yield target_directory + ensure + FileUtils.rm_rf(target_directory) unless target_directory_given + end end private