lace 0.4.0 → 0.4.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MmM4ZTMxYjE1NTNmNjM4MWEzZjFlYTNhMTMyMDNjZDc3OGQ3NjYzMA==
4
+ OTg2ZTcyYWQ2YjgxYzNiZGJmNzY5NmI0ZjBjOTU4MTZlOTQ0N2VmNQ==
5
5
  data.tar.gz: !binary |-
6
- MTc1ZTA0YjA0NjViMmU4YjFmNTJkM2VjMGViMzg4M2Q2NzFlMDU0ZQ==
6
+ ZDNlNTI0ZjAzZjNjNTJjZTVmMTAyY2IzYzU1ZjM1NGIzYjI5OGExMA==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- YzBjYzBkZDc3ZjI4ZjU0NmIxNWRkZDQ1Nzk1ODYwNDFmMGU4MjY3NGJkMTFm
10
- MmQ3ZWNmY2I1ODJkYWNmZTNkMWYyNGFhODJlYTBhYjRjOWVmMTMwODI1Yzg2
11
- MzljNDBmMWU4YzAwMzI4NGFmNjQ1ZmM4ZDNkNjIwMDkyODhmNzM=
9
+ NTc1NDk0YTZjYTY3YjRjMjRiM2M1MTkxZGZkMTRmZGMyMDVjMzdmOTFiNWU2
10
+ MzIzNWZkODNmMzE4NzI1MjZmYThhODYwNTFkZmMzYTZiM2NmYWUyZWEyNmIy
11
+ ZjE0ODNlMzg0YTVkYjQyMTk0M2RjMmQxNWY0Zjk5MzNkNTNkNjg=
12
12
  data.tar.gz: !binary |-
13
- YjQwYjBjN2QyYWY4ZDJhMjc3ZGJjYjdlM2VhNjRjYzU3ZGFlY2Y0MDIyZTdm
14
- M2NlZGJlZTU5NjVhMjRlZTExNDcyOTc0MDI1OTdhMGU4ODMzMjgxYmJkNjA3
15
- YzUzYWE5NzQwZTZhZDY3ZGU4NmFhOGJmNDllNTdhYmY5NjY3MTY=
13
+ MzNmNWRlYzVlMjNkZDA1NjczYmU4ZDQ0YjAzZjUyZTU4NTQ5MmU2MGRmNGI0
14
+ NGJiMDI5ZDQ4NTE2ZTI1YWI3OWNjNTY4MTJhZjQ2YTJlOTMyNjllMDAyOTc1
15
+ YTc3Mjk5MGIyOGFjNTMzOWMxNTM5NTkxMzVjMTMyMmZlZGZhMzI=
@@ -90,8 +90,12 @@ class Pathname
90
90
  join that.to_s
91
91
  end
92
92
 
93
- def as_dotfile base_folder
94
- Pathname.new File.join(base_folder, ".#{basename}")
93
+ def as_backup
94
+ Pathname.new File.join(dirname, "#{basename}.lace.bak")
95
+ end
96
+
97
+ def as_dotfile base_folder, subtract
98
+ Pathname.new File.join(base_folder, ".#{to_path.gsub(subtract, "")[1..-1]}")
95
99
  end
96
100
 
97
101
  end
@@ -25,13 +25,15 @@ class PackageFacts
25
25
  end
26
26
 
27
27
  def config_files
28
- if @unflavorable_facts.nil? or @facts["config_files"].nil?
29
- []
30
- else
28
+ if has_config_files?
31
29
  @facts["config_files"].flatten.map do |file|
32
- @package_path + file
33
- end
34
- end
30
+ Pathname.glob(@package_path + file)
31
+ end.flatten
32
+ else [] end
33
+ end
34
+
35
+ def has_config_files?
36
+ has_key? 'config_files'
35
37
  end
36
38
 
37
39
  def has_flavors?
@@ -39,7 +41,7 @@ class PackageFacts
39
41
  end
40
42
 
41
43
  def has_key? key
42
- @unflavorable_facts && @unflavorable_facts.has_key?(key)
44
+ @unflavorable_facts && ( @unflavorable_facts.has_key?(key) or @facts.has_key?(key))
43
45
  end
44
46
 
45
47
  def version
@@ -65,17 +65,34 @@ class Package
65
65
  home_dir = ENV["HOME"]
66
66
  files.each do |file|
67
67
  file = Pathname.new(file)
68
- dotfile = file.as_dotfile(home_dir)
68
+ dotfile = file.as_dotfile(home_dir, @path)
69
69
  FileUtils.rm_f dotfile if dotfile.exist? && dotfile.readlink == file
70
70
  end
71
71
  end
72
72
 
73
73
  def activate!
74
74
  files = @facts.config_files
75
- home_dir = ENV["HOME"]
76
75
  files.each do |file|
77
- # if ends in erb -> generate it
78
- FileUtils.ln_s file, Pathname.new(file).as_dotfile(home_dir), :force => ARGV.force?
76
+ link_file file
77
+ end
78
+ end
79
+
80
+ def link_file file
81
+ home_dir = ENV["HOME"]
82
+ # if ends in erb -> generate it
83
+ src = file
84
+ dest = src.as_dotfile(home_dir, @path)
85
+ if src.exist? && dest.exist? && dest.directory? && ARGV.force?
86
+ FileUtils.mv dest, dest.as_backup
79
87
  end
88
+ link_file_or_directory src, dest
80
89
  end
90
+
91
+ def link_file_or_directory(src, dest)
92
+ if !dest.dirname.exist?
93
+ dest.dirname.mkpath
94
+ end
95
+ FileUtils.ln_s src, dest, :force => ARGV.force?
96
+ end
97
+
81
98
  end
data/lib/lace/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lace
2
- VERSION = "0.4.0"
2
+ VERSION = "0.4.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kai Richard Koenig
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-06-15 00:00:00.000000000 Z
11
+ date: 2015-06-18 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Lace lets you manage your dotfiles when using them on multiple machines
14
14
  email: kai@kairichardkoenig.de
@@ -17,7 +17,6 @@ executables:
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
- - bin/lace
21
20
  - lib/cmd/activate.rb
22
21
  - lib/cmd/deactivate.rb
23
22
  - lib/cmd/fetch.rb
@@ -31,15 +30,16 @@ files:
31
30
  - lib/cmd/validate.rb
32
31
  - lib/extend/ARGV.rb
33
32
  - lib/extend/pathname.rb
34
- - lib/lace.rb
35
33
  - lib/lace/download_strategy.rb
36
34
  - lib/lace/exceptions.rb
37
- - lib/lace/package.rb
38
35
  - lib/lace/package/facts.rb
39
36
  - lib/lace/package/package.rb
40
37
  - lib/lace/package/utils.rb
38
+ - lib/lace/package.rb
41
39
  - lib/lace/utils.rb
42
40
  - lib/lace/version.rb
41
+ - lib/lace.rb
42
+ - bin/lace
43
43
  homepage: https://github.com/kairichard/lace
44
44
  licenses:
45
45
  - MIT
@@ -60,7 +60,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
60
60
  version: '0'
61
61
  requirements: []
62
62
  rubyforge_project:
63
- rubygems_version: 2.2.0
63
+ rubygems_version: 2.1.11
64
64
  signing_key:
65
65
  specification_version: 4
66
66
  summary: Manage your .dotfiles