class TerraformWrapper::Tasks::Clean
Public Class Methods
new(code:) { |self| ... }
click to toggle source
# File lib/terraform-wrapper/tasks/clean.rb, line 38 def initialize(code:) @code = code yield self if block_given? clean_task end
Public Instance Methods
clean_task()
click to toggle source
# File lib/terraform-wrapper/tasks/clean.rb, line 48 def clean_task desc "Cleans a Terraform infrastructure component workspace of any downloaded providers and modules." task :clean do |t, args| logger.info("Cleaning Terraform component: #{@code.name}...") directory_counter = 0 @@glob_directories.each do |key, value| logger.info("Cleaning directories: #{key}") directory_item_counter = 0 directories = Dir.glob(File.join(@code.path, value)) directories.each do |directory| if delete_directory(directory: directory) then directory_item_counter += 1 directory_counter += 1 end end logger.success("Cleaned: #{directory_item_counter.to_s} directories.") end file_counter = 0 @@glob_files.each do |key, value| logger.info("Cleaning files: #{key}") file_item_counter = 0 files = Dir.glob(File.join(@code.path, value)) files.each do |file| if delete_file(file: file) then file_item_counter += 1 file_counter += 1 end end logger.success("Cleaned: #{file_item_counter.to_s} files.") end logger.success("Cleaned total: #{directory_counter.to_s} directories and: #{file_counter.to_s} files.") end end
Private Instance Methods
delete_directory(directory:)
click to toggle source
# File lib/terraform-wrapper/tasks/clean.rb, line 93 def delete_directory(directory:) result = false if File.directory?(directory) then begin FileUtils.remove_dir(directory) result = true logger.info("Deleted directory: #{directory}") rescue result = false logger.warn("Failed to delete directory: #{directory}") end end return result end
delete_file(file:)
click to toggle source
# File lib/terraform-wrapper/tasks/clean.rb, line 112 def delete_file(file:) result = false if File.file?(file) then begin File.delete(file) result = true logger.info("Deleted file: #{file}") rescue result = false logger.warn("Failed to delete file: #{file}") end end return result end