From 66467d86b9146190b5c2e1a0945c52f256eca530 Mon Sep 17 00:00:00 2001 From: Gautham Goli Date: Sun, 11 Nov 2018 17:48:28 +0530 Subject: [PATCH] unlink: Use CLI::Parser to parse args --- Library/Homebrew/cmd/unlink.rb | 26 +++++++++++++++++++++++--- 1 file changed, 23 insertions(+), 3 deletions(-) diff --git a/Library/Homebrew/cmd/unlink.rb b/Library/Homebrew/cmd/unlink.rb index ccbd02e64b..81561f96d3 100644 --- a/Library/Homebrew/cmd/unlink.rb +++ b/Library/Homebrew/cmd/unlink.rb @@ -7,15 +7,35 @@ #: be unlinked, but will not actually unlink or delete any files. require "ostruct" +require "cli_parser" module Homebrew module_function + def unlink_args + Homebrew::CLI::Parser.new do + usage_banner <<~EOS + `unlink` [] + + Remove symlinks for from the Homebrew prefix. This can be useful + for temporarily disabling a formula: + `brew unlink` `&&` `&& brew link` + EOS + switch "-n", "--dry-run", + description: "List all files which would be unlinked, but will not actually unlink or "\ + "delete any files." + switch :verbose + switch :debug + end + end + def unlink - raise KegUnspecifiedError if ARGV.named.empty? + unlink_args.parse + + raise KegUnspecifiedError if args.remaining.empty? mode = OpenStruct.new - mode.dry_run = true if ARGV.dry_run? + mode.dry_run = true if args.dry_run? ARGV.kegs.each do |keg| if mode.dry_run @@ -26,7 +46,7 @@ module Homebrew keg.lock do print "Unlinking #{keg}... " - puts if ARGV.verbose? + puts if args.verbose? puts "#{keg.unlink(mode)} symlinks removed" end end