lace 0.4.3 → 0.4.4

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,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MjlhNmZlYTA1ZDNhM2FjNGRiM2E2YWU1YTBkNGJjNmM5ZDcwMjkzMw==
5
- data.tar.gz: !binary |-
6
- ZjkzNjE1ZTY5NTA1ZjEzODkxYjQ3YmMxNzQyMDkzYTU5NTYyN2E1MA==
2
+ SHA256:
3
+ metadata.gz: 80eaddd6780262b38522e7d8d6f65871b9ab81197b5704133d71e2b4662882c3
4
+ data.tar.gz: 3ad1dc409bb5423a65ddd2f5a5ba01e8da64d6dbd571ea4ff66b8de9b5d87336
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- N2NkYTRiZTkzOTQyYTI4ZjBiZTE4ZjkyZDA3ZDg0YTVjMjVhYmViNjFhMTRm
10
- M2U0MjJmOTM1NzhmNTc5ZDUyYzgxNWMxNzM0YjZjYmFhMjE2MzFjYzc4YTdk
11
- NDU4ZTczMmQ4NWM3MDM5ZjY0Y2RjMzBmMTY0NDg0ZjBkOWU3MmI=
12
- data.tar.gz: !binary |-
13
- M2JlY2ZmNDZjZjY0OWQ1NDNlOWMzNWQwYjQzMjliYjg1YTE5ZTNmNTNlYzM5
14
- ZjkwZDQzZDdhODc2OTRiNzI3ZmUwNjllMGM3OTE3OTEwYzM3MjI4YmE0ZTAw
15
- NWVjZDYwMGQ5MmU2NDM5ODdjZmUxMTUwOWUxZDljZTQ5MDgxMDY=
6
+ metadata.gz: 9197f2403e97ab8f15273faddbbb05d734b0888329dee180078f11d330a1b72c5afe5cbf2cdc1616919319d14651a25b6470d74fc83197c575a9c492d38ec143
7
+ data.tar.gz: 1d4edb089fe50cb82f8796fd297d055cf4c58539ad640c1ec06aeeea3de1d330c2d591203dbf62784b6c099e5b46a238269fc7026d0d0580a842aff6468d0a5f
data/bin/lace CHANGED
@@ -36,10 +36,6 @@ require "extend/pathname"
36
36
 
37
37
  ARGV.extend(LaceArgvExtension)
38
38
 
39
- if ARGV.debug?
40
- require 'pry'
41
- end
42
-
43
39
  def require? path
44
40
  require path.to_s.chomp
45
41
  rescue LoadError => e
@@ -55,12 +51,6 @@ case ARGV.first when '-h', '--help', '--usage', '-?', 'help', nil
55
51
  when '--version'
56
52
  puts Lace::VERSION
57
53
  exit 0
58
- when '-v'
59
- puts "lace #{Lace::VERSION}"
60
- # Shift the -v to the end of the parameter list
61
- ARGV << ARGV.shift
62
- # If no other arguments, just quit here.
63
- exit 0 if ARGV.length == 1
64
54
  end
65
55
 
66
56
 
@@ -99,7 +89,6 @@ rescue Interrupt => e
99
89
  rescue RuntimeError, SystemCallError => e
100
90
  raise if e.message.empty?
101
91
  onoe e
102
- puts e.backtrace if false
103
92
  exit 1
104
93
  rescue Exception => e
105
94
  onoe e
@@ -1,12 +1,11 @@
1
-
2
1
  require 'lace/package'
3
2
  require 'lace/exceptions'
4
3
 
5
4
  module Lace extend self
6
- def activate
7
- package_name = ARGV.shift
8
- raise ResourceNotSpecified unless package_name
9
- PackageUtils.activate package_name
10
- end
5
+ def activate
6
+ package_name = ARGV.shift
7
+ raise ResourceNotSpecified unless package_name
8
+ PackageUtils.activate package_name
9
+ end
11
10
  end
12
11
 
@@ -2,10 +2,10 @@ require 'lace/package'
2
2
  require 'lace/exceptions'
3
3
 
4
4
  module Lace extend self
5
- def deactivate
6
- package_name = ARGV.shift
7
- raise ResourceNotSpecified unless package_name
8
- PackageUtils.deactivate package_name
9
- end
5
+ def deactivate
6
+ package_name = ARGV.shift
7
+ raise ResourceNotSpecified unless package_name
8
+ PackageUtils.deactivate package_name
9
+ end
10
10
  end
11
11
 
@@ -2,18 +2,18 @@ require 'lace/package'
2
2
  require 'lace/exceptions'
3
3
 
4
4
  module Lace extend self
5
- def fetch
6
- resource = ARGV.shift
5
+ def fetch
6
+ resource = ARGV.shift
7
7
  desired_package_name = ARGV.value "name"
8
- raise ResourceNotSpecified unless resource
9
- package_name, target_folder = PackageUtils.fetch(resource, desired_package_name)
8
+ raise ResourceNotSpecified unless resource
9
+ package_name, target_folder = PackageUtils.fetch(resource, desired_package_name)
10
10
  begin
11
- Package.new(package_name, false)
11
+ Package.new(package_name, false)
12
12
  rescue PackageFactsNotFound => e
13
- onoe e.message
14
- onoe "Removing fetched files"
15
- FileUtils.rm_rf(target_folder)
16
- Lace.failed = true
13
+ onoe e.message
14
+ onoe "Removing fetched files"
15
+ FileUtils.rm_rf(target_folder)
16
+ Lace.failed = true
17
17
  end
18
- end
18
+ end
19
19
  end
@@ -3,11 +3,18 @@ require 'lace/package'
3
3
  module Lace extend self
4
4
 
5
5
  def linked_files
6
- home_dir = ENV["HOME"]
7
- Dir.foreach(home_dir).map do |filename|
8
- next if filename == '.' or filename == '..'
9
- File.readlink File.join(home_dir, filename) if File.symlink? File.join(home_dir, filename)
10
- end.compact.uniq
6
+ home_dir = Pathname.new ENV["HOME"]
7
+ find_links home_dir
8
+ end
9
+
10
+ def find_links dir
11
+ dir.children.map do |path|
12
+ if path.directory? && !path.symlink?
13
+ find_links path
14
+ else
15
+ File.readlink path if path.symlink?
16
+ end
17
+ end.flatten.compact.uniq
11
18
  end
12
19
 
13
20
  def active_packages
@@ -2,10 +2,10 @@ require 'lace/package'
2
2
  require 'lace/exceptions'
3
3
 
4
4
  module Lace extend self
5
- def remove
6
- package_name = ARGV.shift
7
- raise ResourceNotSpecified unless package_name
8
- PackageUtils.remove package_name
9
- end
5
+ def remove
6
+ package_name = ARGV.shift
7
+ raise ResourceNotSpecified unless package_name
8
+ PackageUtils.remove package_name
9
+ end
10
10
  end
11
11
 
@@ -2,8 +2,8 @@ require 'lace/package'
2
2
  require 'lace/exceptions'
3
3
 
4
4
  module Lace extend self
5
- def setup
6
- package_name = ARGV.shift
7
- PackageUtils.setup package_name
8
- end
5
+ def setup
6
+ package_name = ARGV.shift
7
+ PackageUtils.setup package_name
8
+ end
9
9
  end
@@ -2,9 +2,9 @@ require 'lace/package'
2
2
  require 'lace/exceptions'
3
3
 
4
4
  module Lace extend self
5
- def update
6
- resource = ARGV.shift
7
- raise ResourceNotSpecified unless resource
8
- PackageUtils.update resource
9
- end
5
+ def update
6
+ resource = ARGV.shift
7
+ raise ResourceNotSpecified unless resource
8
+ PackageUtils.update resource
9
+ end
10
10
  end
@@ -2,7 +2,7 @@ require 'lace/package'
2
2
  require 'lace/exceptions'
3
3
 
4
4
  module Lace extend self
5
- def upgrade
5
+ def upgrade
6
6
  require 'cmd/list'
7
7
  if Lace.active_packages.empty?
8
8
  upgrade_lace_folder
@@ -10,7 +10,7 @@ module Lace extend self
10
10
  onoe "Please deactivate all packages before continuing"
11
11
  Lace.failed = true
12
12
  end
13
- end
13
+ end
14
14
  def upgrade_lace_folder
15
15
  old_dir = Pathname.new(ENV["HOME"])/".cassias"
16
16
  if old_dir.exist?
@@ -17,14 +17,14 @@ Lace-Manifest Validation Report:
17
17
  EOS
18
18
 
19
19
  module Lace extend self
20
- def validate
21
- resource = ARGV.shift
20
+ def validate
21
+ resource = ARGV.shift
22
22
  flavor = ARGV.shift
23
- raise ResourceNotSpecified unless resource
23
+ raise ResourceNotSpecified unless resource
24
24
  validation = PackageValidator.new(PackageFacts.new(resource), flavor)
25
25
  puts ERB.new(VALIDATE, nil, '-').result(binding)
26
26
  Lace.failed = true if validation.has_errors?
27
- end
27
+ end
28
28
  end
29
29
 
30
30
  class PackageValidator
@@ -58,7 +58,7 @@ class PackageValidator
58
58
  def check_hooks hook_cmd
59
59
  hook_cmd.map do |cmd|
60
60
  if !File.exist? cmd
61
- "#{cmd} cannot be found"
61
+ "#{cmd} cannot be found"
62
62
  elsif !File.executable? cmd
63
63
  "#{cmd} is not executable"
64
64
  end
@@ -0,0 +1,16 @@
1
+ require 'lace/package'
2
+ require 'lace/exceptions'
3
+
4
+ module Lace extend self
5
+ def where
6
+ package_name = ARGV.shift
7
+ raise ResourceNotSpecified unless package_name
8
+ begin
9
+ package = Package.new(package_name, false)
10
+ puts "#{package.path}"
11
+ rescue PackageFactsNotFound => e
12
+ onoe "asd"
13
+ Lace.failed = true
14
+ end
15
+ end
16
+ end
@@ -155,9 +155,9 @@ class GitDownloadStrategy < AbstractDownloadStrategy
155
155
  if super
156
156
  super
157
157
  elsif @uri.include? "github.com"
158
- @uri.split("/")[-2]
158
+ @uri.split("/")[-2]
159
159
  elsif File.directory? @uri
160
- File.basename(@uri)
160
+ File.basename(@uri)
161
161
  else
162
162
  raise "Cannot determine a proper name with #@uri"
163
163
  end
@@ -177,15 +177,8 @@ end
177
177
 
178
178
 
179
179
  class DownloadStrategyDetector
180
- def self.detect(uri, strategy=nil)
181
- if strategy.nil?
180
+ def self.detect(uri)
182
181
  detect_from_uri(uri)
183
- elsif Symbol === strategy
184
- detect_from_symbol(strategy)
185
- else
186
- raise TypeError,
187
- "Unknown download strategy specification #{strategy.inspect}"
188
- end
189
182
  end
190
183
 
191
184
  def self.detect_from_uri(uri)
@@ -200,20 +193,11 @@ class DownloadStrategyDetector
200
193
  end
201
194
 
202
195
  case uri
203
- when %r[^git://] then GitDownloadStrategy
204
- when %r[^https?://.+\.git$] then GitDownloadStrategy
196
+ when %r[^git://] then GitDownloadStrategy
197
+ when %r[^https?://.+\.git$] then GitDownloadStrategy
205
198
  # else CurlDownloadStrategy
206
199
  else
207
200
  raise "Cannot determine download startegy from #{uri}"
208
201
  end
209
202
  end
210
-
211
- def self.detect_from_symbol(symbol)
212
- case symbol
213
- when :git then GitDownloadStrategy
214
- when :local_file then LocalFileStrategy
215
- else
216
- raise "Unknown download strategy #{strategy} was requested."
217
- end
218
- end
219
203
  end
@@ -21,8 +21,8 @@ class NonActiveFlavorError < RuntimeError
21
21
  end
22
22
 
23
23
  class PackageAlreadyInstalled < RuntimeError
24
- def initialize
25
- super "Package already installed"
24
+ def initialize location
25
+ super "Package already installed at #{location}"
26
26
  end
27
27
  end
28
28
 
@@ -1,5 +1,3 @@
1
1
  require 'lace/package/utils'
2
2
  require 'lace/package/facts'
3
3
  require 'lace/package/package'
4
-
5
-
@@ -5,7 +5,7 @@ class PackageUtils
5
5
  def self.fetch uri, desired_package_name=nil
6
6
  downloader_cls = DownloadStrategyDetector.detect(uri)
7
7
  downloader = downloader_cls.new(uri, desired_package_name)
8
- raise PackageAlreadyInstalled.new if downloader.target_folder.exist?
8
+ raise PackageAlreadyInstalled.new(downloader.target_folder) if downloader.target_folder.exist?
9
9
  downloader.fetch
10
10
  return downloader.name, downloader.target_folder
11
11
  end
@@ -90,9 +90,9 @@ end
90
90
 
91
91
  def determine_os
92
92
  case RUBY_PLATFORM
93
- when /darwin/ then :mac
94
- when /linux/ then :linux
95
- else raise InvalidOSError
93
+ when /darwin/ then :mac
94
+ when /linux/ then :linux
95
+ else raise InvalidOSError
96
96
  end
97
97
  end
98
98
 
@@ -1,3 +1,3 @@
1
1
  module Lace
2
- VERSION = "0.4.3"
2
+ VERSION = "0.4.4"
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.3
4
+ version: 0.4.4
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-22 00:00:00.000000000 Z
11
+ date: 2020-03-20 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,6 +17,7 @@ executables:
17
17
  extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
+ - bin/lace
20
21
  - lib/cmd/activate.rb
21
22
  - lib/cmd/deactivate.rb
22
23
  - lib/cmd/fetch.rb
@@ -28,18 +29,18 @@ files:
28
29
  - lib/cmd/update.rb
29
30
  - lib/cmd/upgrade.rb
30
31
  - lib/cmd/validate.rb
32
+ - lib/cmd/where.rb
31
33
  - lib/extend/ARGV.rb
32
34
  - lib/extend/pathname.rb
35
+ - lib/lace.rb
33
36
  - lib/lace/download_strategy.rb
34
37
  - lib/lace/exceptions.rb
38
+ - lib/lace/package.rb
35
39
  - lib/lace/package/facts.rb
36
40
  - lib/lace/package/package.rb
37
41
  - lib/lace/package/utils.rb
38
- - lib/lace/package.rb
39
42
  - lib/lace/utils.rb
40
43
  - lib/lace/version.rb
41
- - lib/lace.rb
42
- - bin/lace
43
44
  homepage: https://github.com/kairichard/lace
44
45
  licenses:
45
46
  - MIT
@@ -50,17 +51,16 @@ require_paths:
50
51
  - lib
51
52
  required_ruby_version: !ruby/object:Gem::Requirement
52
53
  requirements:
53
- - - ! '>='
54
+ - - ">="
54
55
  - !ruby/object:Gem::Version
55
56
  version: 1.8.6
56
57
  required_rubygems_version: !ruby/object:Gem::Requirement
57
58
  requirements:
58
- - - ! '>='
59
+ - - ">="
59
60
  - !ruby/object:Gem::Version
60
61
  version: '0'
61
62
  requirements: []
62
- rubyforge_project:
63
- rubygems_version: 2.1.11
63
+ rubygems_version: 3.1.2
64
64
  signing_key:
65
65
  specification_version: 4
66
66
  summary: Manage your .dotfiles