aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/cmd/unlinkapps.rb
diff options
context:
space:
mode:
authorMartin Afanasjew2015-12-08 08:40:44 +0100
committerMartin Afanasjew2016-04-06 10:31:54 +0200
commitb50e950f0ea2a5fdfc8d312d1a6eb4f4e6240fa0 (patch)
tree512e47872cb991562f6054180449ec4e01ea8e39 /Library/Homebrew/cmd/unlinkapps.rb
parentdcf406f1e42ac15718e2dcbee98fcb7e22f4f27b (diff)
downloadbrew-b50e950f0ea2a5fdfc8d312d1a6eb4f4e6240fa0.tar.bz2
unlinkapps: add --dry-run option
Add `--dry-run` option as is customary for destructive commands. Update `bash` completion and man page accordingly. Also correct and update documentation for both `brew linkapps` and `brew unlinkapps` in more general terms.
Diffstat (limited to 'Library/Homebrew/cmd/unlinkapps.rb')
-rw-r--r--Library/Homebrew/cmd/unlinkapps.rb15
1 files changed, 11 insertions, 4 deletions
diff --git a/Library/Homebrew/cmd/unlinkapps.rb b/Library/Homebrew/cmd/unlinkapps.rb
index 86a816050..68ee9d94e 100644
--- a/Library/Homebrew/cmd/unlinkapps.rb
+++ b/Library/Homebrew/cmd/unlinkapps.rb
@@ -4,13 +4,14 @@ module Homebrew
def unlinkapps
target_dir = linkapps_target(:local => ARGV.include?("--local"))
- unlinkapps_from_dir(target_dir)
+ unlinkapps_from_dir(target_dir, :dry_run => ARGV.dry_run?)
end
private
- def unlinkapps_from_dir(target_dir)
+ def unlinkapps_from_dir(target_dir, opts = {})
return unless target_dir.directory?
+ dry_run = opts.fetch(:dry_run, false)
apps = Pathname.glob("#{target_dir}/*.app").select do |app|
unlinkapps_unlink?(app)
@@ -20,10 +21,16 @@ module Homebrew
apps.each do |app|
app.extend(ObserverPathnameExtension)
- puts "Unlinking: #{app}"
- app.unlink
+ if dry_run
+ puts "Would unlink: #{app}"
+ else
+ puts "Unlinking: #{app}"
+ app.unlink
+ end
end
+ return if dry_run
+
if ObserverPathnameExtension.total.zero?
puts "No apps unlinked from #{target_dir}" if ARGV.verbose?
else