brew/Library/Homebrew/cmd/cleanup.rb

69 lines
2.4 KiB
Ruby
Raw Normal View History

#: * `cleanup` [`--prune=`<days>] [`--dry-run`] [`-s`] [<formulae>|<casks>]:
2018-08-09 15:00:19 +02:00
#: Remove stale lock files and outdated downloads for formulae and casks,
#: and remove old versions of installed formulae. If arguments are specified,
#: only do this for the specified formulae and casks.
2016-04-08 16:28:43 +02:00
#:
#: If `--prune=`<days> is specified, remove all cache files older than <days>.
#:
#: If `--dry-run` or `-n` is passed, show what would be removed, but do not
#: actually remove anything.
#:
2018-08-09 15:00:19 +02:00
#: If `-s` is passed, scrub the cache, including downloads for even the latest
#: versions. Note downloads for any installed formula or cask will still not
#: be deleted. If you want to delete those too: `rm -rf "$(brew --cache)"`
2016-04-08 16:28:43 +02:00
require "cleanup"
2018-08-08 11:20:53 +02:00
require "cli_parser"
module Homebrew
2016-09-26 01:44:51 +02:00
module_function
2018-12-12 02:02:19 +05:30
def cleanup_args
Homebrew::CLI::Parser.new do
usage_banner <<~EOS
`cleanup` [<options>] [<formulae>|<casks>]
Remove stale lock files and outdated downloads for formulae and casks,
and remove old versions of installed formulae. If arguments are specified,
only do this for the specified formulae and casks.
EOS
flag "--prune=",
description: "Remove all cache files older than specified <days>."
switch "-n", "--dry-run",
description: "Show what would be removed, but do not actually remove anything."
switch "-s",
description: "Scrub the cache, including downloads for even the latest versions. "\
"Note downloads for any installed formula or cask will still not be deleted. "\
"If you want to delete those too: `rm -rf \"$(brew --cache)\"`"
switch :verbose
switch :debug
end
2018-12-12 02:02:19 +05:30
end
def cleanup
cleanup_args.parse
2018-08-08 11:20:53 +02:00
cleanup = Cleanup.new(*args.remaining, dry_run: args.dry_run?, scrub: args.s?, days: args.prune&.to_i)
cleanup.clean!
2016-09-22 20:12:28 +02:00
2018-08-08 11:20:53 +02:00
unless cleanup.disk_cleanup_size.zero?
disk_space = disk_usage_readable(cleanup.disk_cleanup_size)
if args.dry_run?
ohai "This operation would free approximately #{disk_space} of disk space."
else
ohai "This operation has freed approximately #{disk_space} of disk space."
end
end
2018-08-08 11:20:53 +02:00
return if cleanup.unremovable_kegs.empty?
2017-10-15 02:28:32 +02:00
ofail <<~EOS
Could not cleanup old kegs! Fix your permissions on:
2018-08-08 11:20:53 +02:00
#{cleanup.unremovable_kegs.join "\n "}
EOS
end
end