lace 0.4.0 → 0.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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