aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cask/lib
diff options
context:
space:
mode:
authorJosh Hagins2016-08-24 11:11:19 -0400
committerGitHub2016-08-24 11:11:19 -0400
commit4f6a46f4b1a35b96e3f801c1168538d2346c92a2 (patch)
tree59f8716f5dee44204cf9277dbe3b5fc849e72c74 /Library/Homebrew/cask/lib
parent8d79cf1eb605fe10fe9b0648ab3a74440c8c0a89 (diff)
parent911edb0ed77859445c3a48f6abe5b9be5807ebf7 (diff)
downloadbrew-4f6a46f4b1a35b96e3f801c1168538d2346c92a2.tar.bz2
Merge pull request #791 from reitermarkus/per-cask-cleanup
Allow per-cask `cleanup`.
Diffstat (limited to 'Library/Homebrew/cask/lib')
-rw-r--r--Library/Homebrew/cask/lib/hbc/cli/cleanup.rb30
1 files changed, 25 insertions, 5 deletions
diff --git a/Library/Homebrew/cask/lib/hbc/cli/cleanup.rb b/Library/Homebrew/cask/lib/hbc/cli/cleanup.rb
index b098a243d..4115d26fc 100644
--- a/Library/Homebrew/cask/lib/hbc/cli/cleanup.rb
+++ b/Library/Homebrew/cask/lib/hbc/cli/cleanup.rb
@@ -10,8 +10,12 @@ class Hbc::CLI::Cleanup < Hbc::CLI::Base
true
end
- def self.run(*_ignored)
- default.cleanup!
+ def self.run(*args)
+ if args.empty?
+ default.cleanup!
+ else
+ default.cleanup(args)
+ end
end
def self.default
@@ -25,7 +29,11 @@ class Hbc::CLI::Cleanup < Hbc::CLI::Base
end
def cleanup!
- remove_all_cache_files
+ remove_cache_files
+ end
+
+ def cleanup(tokens)
+ remove_cache_files(*tokens)
end
def cache_files
@@ -55,11 +63,23 @@ class Hbc::CLI::Cleanup < Hbc::CLI::Base
Hbc::Utils.size_in_bytes(cache_files)
end
- def remove_all_cache_files
+ def remove_cache_files(*tokens)
message = "Removing cached downloads"
+ message.concat " for #{tokens.join(', ')}" unless tokens.empty?
message.concat " older than #{OUTDATED_DAYS} days old" if outdated_only
ohai message
- delete_paths(cache_files)
+
+ deletable_cache_files = if tokens.empty?
+ cache_files
+ else
+ start_withs = tokens.map { |token| "#{token}--" }
+
+ cache_files.select { |path|
+ path.basename.to_s.start_with?(*start_withs)
+ }
+ end
+
+ delete_paths(deletable_cache_files)
end
def delete_paths(paths)