Browse Source

automatically link on install / unlink on uninstall

phinze 12 years ago
parent
commit
e16e1622c0
  1. 1
      lib/cask/cli/install.rb
  2. 1
      lib/cask/cli/uninstall.rb
  3. 4
      test/cli/install_test.rb
  4. 6
      test/cli/uninstall_test.rb

1
lib/cask/cli/install.rb

@ -4,6 +4,7 @@ class Cask::CLI::Install
begin begin
cask = Cask.load(cask_name) cask = Cask.load(cask_name)
Cask::Installer.install(cask) Cask::Installer.install(cask)
Cask::AppLinker.new(cask).link
rescue CaskUnavailableError => e rescue CaskUnavailableError => e
onoe e onoe e
rescue ChecksumMissingError => e rescue ChecksumMissingError => e

1
lib/cask/cli/uninstall.rb

@ -3,6 +3,7 @@ class Cask::CLI::Uninstall
begin begin
casks = cask_names.map { |cn| Cask.load(cn) } casks = cask_names.map { |cn| Cask.load(cn) }
casks.each do |cask| casks.each do |cask|
Cask::AppLinker.new(cask).unlink
Cask::Installer.uninstall(cask) Cask::Installer.uninstall(cask)
end end
rescue CaskUnavailableError,CaskNotInstalledError => e rescue CaskUnavailableError,CaskNotInstalledError => e

4
test/cli/install_test.rb

@ -1,13 +1,15 @@
require 'test_helper' require 'test_helper'
describe Cask::CLI::Install do 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 shutup do
Cask::CLI::Install.run('local-transmission', 'local-caffeine') Cask::CLI::Install.run('local-transmission', 'local-caffeine')
end end
Cask.load('local-transmission').must_be :installed? Cask.load('local-transmission').must_be :installed?
Cask.appdir.join('Transmission.app').must_be :symlink?
Cask.load('local-caffeine').must_be :installed? Cask.load('local-caffeine').must_be :installed?
Cask.appdir.join('Caffeine.app').must_be :symlink?
end end
it "properly handles casks that are not present" do it "properly handles casks that are not present" do

6
test/cli/uninstall_test.rb

@ -13,13 +13,15 @@ describe Cask::CLI::Uninstall do
}, 'Error: anvil is not installed') }, 'Error: anvil is not installed')
end end
it "can uninstall multiple casks at once" do it "can uninstall and unlink multiple casks at once" do
caffeine = Cask.load('local-caffeine') caffeine = Cask.load('local-caffeine')
transmission = Cask.load('local-transmission') transmission = Cask.load('local-transmission')
shutup do shutup do
Cask::Installer.install caffeine Cask::Installer.install caffeine
Cask::AppLinker.new(caffeine).link
Cask::Installer.install transmission Cask::Installer.install transmission
Cask::AppLinker.new(transmission).link
end end
caffeine.must_be :installed? caffeine.must_be :installed?
@ -28,6 +30,8 @@ describe Cask::CLI::Uninstall do
Cask::CLI::Uninstall.run('local-caffeine', 'local-transmission') Cask::CLI::Uninstall.run('local-caffeine', 'local-transmission')
caffeine.wont_be :installed? caffeine.wont_be :installed?
Cask.appdir.join('Transmission.app').wont_be :symlink?
transmission.wont_be :installed? transmission.wont_be :installed?
Cask.appdir.join('Caffeine.app').wont_be :symlink?
end end
end end

Loading…
Cancel
Save