Class: Package
Instance Attribute Summary collapse
Instance Method Summary
collapse
#clone_args, #clone_repo, #git_dir, #repo_valid?, #reset, #submodules?, #update_repo, #update_submodules
Constructor Details
#initialize(name, flavor = nil) ⇒ Package
Returns a new instance of Package.
Instance Attribute Details
#facts ⇒ Object
Returns the value of attribute facts.
7
8
9
|
# File 'lib/lace/package/package.rb', line 7
def facts
@facts
end
|
#name ⇒ Object
Returns the value of attribute name.
7
8
9
|
# File 'lib/lace/package/package.rb', line 7
def name
@name
end
|
#path ⇒ Object
Returns the value of attribute path.
7
8
9
|
# File 'lib/lace/package/package.rb', line 7
def path
@path
end
|
Instance Method Details
#activate! ⇒ Object
67
68
69
70
71
72
73
74
|
# File 'lib/lace/package/package.rb', line 67
def activate!
files = @facts.config_files
home_dir = ENV["HOME"]
files.each do |file|
FileUtils.ln_s file, Pathname.new(file).as_dotfile(home_dir), :force => ARGV.force?
end
end
|
#after_update ⇒ Object
28
29
30
31
32
33
34
35
|
# 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! ⇒ Object
57
58
59
60
61
62
63
64
65
|
# File 'lib/lace/package/package.rb', line 57
def deactivate!
files = @facts.config_files
home_dir = ENV["HOME"]
files.each do |file|
file = Pathname.new(file)
dotfile = file.as_dotfile(home_dir)
FileUtils.rm_f dotfile if dotfile.exist? && dotfile.readlink == file
end
end
|
#is_active? ⇒ Boolean
42
43
44
45
46
47
48
49
50
|
# File 'lib/lace/package/package.rb', line 42
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? ⇒ Boolean
37
38
39
40
|
# File 'lib/lace/package/package.rb', line 37
def is_git_repo?
@target_folder = @path
repo_valid?
end
|
#read_facts! ⇒ Object
52
53
54
55
|
# File 'lib/lace/package/package.rb', line 52
def read_facts!
@facts = PackageFacts.new @path
@facts.flavor_with @flavor
end
|
#setup ⇒ Object
18
19
20
21
22
23
24
25
26
|
# 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
|