From b50e950f0ea2a5fdfc8d312d1a6eb4f4e6240fa0 Mon Sep 17 00:00:00 2001 From: Martin Afanasjew Date: Tue, 8 Dec 2015 08:40:44 +0100 Subject: 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. --- Library/Homebrew/cmd/unlinkapps.rb | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'Library/Homebrew/cmd') 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 -- cgit v1.2.3