From e16e1622c0aa78db34f2fc8d707e217a3c3db248 Mon Sep 17 00:00:00 2001 From: phinze Date: Sat, 13 Apr 2013 14:10:37 -0500 Subject: [PATCH] automatically link on install / unlink on uninstall --- lib/cask/cli/install.rb | 1 + lib/cask/cli/uninstall.rb | 1 + test/cli/install_test.rb | 4 +++- test/cli/uninstall_test.rb | 6 +++++- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/cask/cli/install.rb b/lib/cask/cli/install.rb index 06e949fbf..a355cab7a 100644 --- a/lib/cask/cli/install.rb +++ b/lib/cask/cli/install.rb @@ -4,6 +4,7 @@ class Cask::CLI::Install begin cask = Cask.load(cask_name) Cask::Installer.install(cask) + Cask::AppLinker.new(cask).link rescue CaskUnavailableError => e onoe e rescue ChecksumMissingError => e diff --git a/lib/cask/cli/uninstall.rb b/lib/cask/cli/uninstall.rb index 5de3aae6e..873ba6962 100644 --- a/lib/cask/cli/uninstall.rb +++ b/lib/cask/cli/uninstall.rb @@ -3,6 +3,7 @@ class Cask::CLI::Uninstall begin casks = cask_names.map { |cn| Cask.load(cn) } casks.each do |cask| + Cask::AppLinker.new(cask).unlink Cask::Installer.uninstall(cask) end rescue CaskUnavailableError,CaskNotInstalledError => e diff --git a/test/cli/install_test.rb b/test/cli/install_test.rb index 52f83d630..3c74afa20 100644 --- a/test/cli/install_test.rb +++ b/test/cli/install_test.rb @@ -1,13 +1,15 @@ require 'test_helper' describe Cask::CLI::Install do - it "allows install of multiple casks at once" do + it "allows install and link of multiple casks at once" do shutup do Cask::CLI::Install.run('local-transmission', 'local-caffeine') end Cask.load('local-transmission').must_be :installed? + Cask.appdir.join('Transmission.app').must_be :symlink? Cask.load('local-caffeine').must_be :installed? + Cask.appdir.join('Caffeine.app').must_be :symlink? end it "properly handles casks that are not present" do diff --git a/test/cli/uninstall_test.rb b/test/cli/uninstall_test.rb index 072de7d7e..3f99de20b 100644 --- a/test/cli/uninstall_test.rb +++ b/test/cli/uninstall_test.rb @@ -13,13 +13,15 @@ describe Cask::CLI::Uninstall do }, 'Error: anvil is not installed') end - it "can uninstall multiple casks at once" do + it "can uninstall and unlink multiple casks at once" do caffeine = Cask.load('local-caffeine') transmission = Cask.load('local-transmission') shutup do Cask::Installer.install caffeine + Cask::AppLinker.new(caffeine).link Cask::Installer.install transmission + Cask::AppLinker.new(transmission).link end caffeine.must_be :installed? @@ -28,6 +30,8 @@ describe Cask::CLI::Uninstall do Cask::CLI::Uninstall.run('local-caffeine', 'local-transmission') caffeine.wont_be :installed? + Cask.appdir.join('Transmission.app').wont_be :symlink? transmission.wont_be :installed? + Cask.appdir.join('Caffeine.app').wont_be :symlink? end end