Class: PackageUtils

Inherits:
Object
  • Object
show all
Defined in:
lib/lace/package/utils.rb

Class Method Summary collapse

Class Method Details

.activate(package_name) ⇒ Object

Raises:



38
39
40
41
42
43
# File 'lib/lace/package/utils.rb', line 38

def self.activate package_name
  package = Package.new(package_name, ARGV.first)
  raise AlreadyActiveError.new if Package.new(package_name, false).is_active?
  ohai "Activating"
  package.activate!
end

.deactivate(package_name) ⇒ Object



31
32
33
34
35
36
# File 'lib/lace/package/utils.rb', line 31

def self.deactivate package_name
  package = Package.new(package_name, ARGV.first)
  raise NonActiveFlavorError.new unless package.is_active? || ARGV.force?
  ohai "Deactivating"
  package.deactivate!
end

.fetch(uri, desired_package_name = nil) ⇒ Object



5
6
7
8
9
10
11
# File 'lib/lace/package/utils.rb', line 5

def self.fetch uri, desired_package_name=nil
  downloader_cls = DownloadStrategyDetector.detect(uri)
  downloader = downloader_cls.new(uri, desired_package_name)
  raise PackageAlreadyInstalled.new if downloader.target_folder.exist?
  downloader.fetch
  return downloader.name, downloader.target_folder
end

.remove(package_name) ⇒ Object



13
14
15
16
17
18
# File 'lib/lace/package/utils.rb', line 13

def self.remove package_name
  package = Package.new(package_name, false)
  raise CannotRemoveActivePackage.new if package.is_active?
  ohai "Removing"
  FileUtils.rm_rf package.path
end

.setup(package_name) ⇒ Object



20
21
22
23
24
25
26
27
28
29
# File 'lib/lace/package/utils.rb', line 20

def self.setup package_name
  begin
    package = Package.new(package_name, ARGV.first)
    package.activate!
    package.setup
  rescue FlavorError => e
    onoe e.message
    onoe "Package remains installed but was not activated"
  end
end

.update(package_name) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/lace/package/utils.rb', line 45

def self.update package_name
  package = Package.new(package_name, false)
  raise OnlyGitReposCanBeUpdatedError.new unless package.is_git_repo?
  updater = GitUpdateStrategy.new(package_name)
  was_active_before_update = package.is_active?
  self.deactivate(package_name) if was_active_before_update
  ohai "Updating"
  updater.update
  self.activate(package_name) if was_active_before_update
  package = Package.new package_name, false
  package.after_update
end