Sha256: 9fa84e7319e05cf1d55062969bf2b4de6674f37ffb5bf55ac108188a0e04877c

Contents?: true

Size: 1015 Bytes

Versions: 1

Compression:

Stored size: 1015 Bytes

Contents

require 'fileutils'
require 'find'

module XcodeTrashRemover

	module Core

		extend self

		@@xcode_directories = [
							Dir.glob("#{File.expand_path('~')}/Library/Developer/Xcode/DerivedData/*"),
							Dir.glob("#{File.expand_path('~')}/Library/Developer/Xcode/Archives/*"),
							]

		def dir_size(dir_path)
			dir_path << '/' unless dir_path.end_with?('/')
			raise RuntimeError, "#{dir_path} is not a directory" unless File.directory?(dir_path)

			total_size = 0
			Dir["#{dir_path}**/*"].each do |f|
				total_size += File.size(f) if File.file?(f) && File.size?(f)
			end
			total_size
		end

		# TODO: function to return best size (MB or GB)

		def get_trash_size
			trash_size = 0
			@@xcode_directories.each do |dir|
			if dir.empty?
				next
			end
			dir.each do |folder|
				trash_size += dir_size(folder)
				end
			end
			trash_size
		end

		def remove_trash
			@@xcode_directories.each do |dir|
			dir.each do |folder|
				FileUtils.rm_rf(folder.gsub(/ /, '\ '))
				end
			end
		end

	end

end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
xcode_trash_remover-1.0.1 lib/xcode_trash_remover/core.rb