class Package

Attributes

facts[R]
name[R]
path[R]

Public Class Methods

new(name, flavor=nil) click to toggle source
# File lib/lace/package/package.rb, line 9
def initialize name, flavor=nil
  require 'cmd/list'
  raise PackageNotInstalled.new(name) unless Lace.installed_packages.include?(name)
  @name = name
  @path = Lace.pkgs_folder/name
  @flavor = flavor
  read_facts!
end

Public Instance Methods

activate!() click to toggle source
# File lib/lace/package/package.rb, line 73
def activate!
  files = @facts.config_files
  files.each do |file|
    link_file file
  end
end
after_update() click to toggle source
# File lib/lace/package/package.rb, line 28
def after_update
  return if ARGV.nohooks?
  @path.cd do
    facts.post(:update).each do |cmd|
      system cmd
    end
  end
end
deactivate!() click to toggle source
# File lib/lace/package/package.rb, line 63
def deactivate!
  files = @facts.config_files
  home_dir = ENV["HOME"]
  files.each do |file|
    file = Pathname.new(file)
    dotfile = file.as_dotfile(home_dir, @path)
    FileUtils.rm_f dotfile if dotfile.exist? && dotfile.readlink == file
  end
end
is_active?() click to toggle source
# File lib/lace/package/package.rb, line 48
def is_active?
  if @facts.has_flavors? && @flavor == false
    @facts.flavors.any?{|f| Package.new(@name, f).is_active?}
  else
    linked_files = Set.new Lace.linked_files.map(&:to_s)
    config_files = Set.new @facts.config_files.map(&:to_s)
    config_files.subset? linked_files
  end
end
is_git_repo?() click to toggle source
# File lib/lace/package/package.rb, line 37
def is_git_repo?
  @target_folder = @path
  repo_valid?
end
is_modified?() click to toggle source
# File lib/lace/package/package.rb, line 42
def is_modified?
  return false unless is_git_repo?
  @target_folder = @path
  repo_modified?
end
read_facts!() click to toggle source
# File lib/lace/package/package.rb, line 58
def read_facts!
  @facts = PackageFacts.new @path
  @facts.flavor_with @flavor
end
setup() click to toggle source
# File lib/lace/package/package.rb, line 18
def setup
  return if ARGV.nohooks?
  ENV['LACEPKG_PATH'] = @path
   @path.cd do
     facts.setup_files.each do |cmd|
       safe_system cmd
     end
   end
end