lace 0.4.4 → 0.5.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 80eaddd6780262b38522e7d8d6f65871b9ab81197b5704133d71e2b4662882c3
4
- data.tar.gz: 3ad1dc409bb5423a65ddd2f5a5ba01e8da64d6dbd571ea4ff66b8de9b5d87336
3
+ metadata.gz: d98c40941c6f892e520dbd99ba1d29f7a3485ce59353e12efbe8268ec38cbe68
4
+ data.tar.gz: 6f04e59649921e470016585f28390e13c3b3e6fed0c229bb47cf291d2c795999
5
5
  SHA512:
6
- metadata.gz: 9197f2403e97ab8f15273faddbbb05d734b0888329dee180078f11d330a1b72c5afe5cbf2cdc1616919319d14651a25b6470d74fc83197c575a9c492d38ec143
7
- data.tar.gz: 1d4edb089fe50cb82f8796fd297d055cf4c58539ad640c1ec06aeeea3de1d330c2d591203dbf62784b6c099e5b46a238269fc7026d0d0580a842aff6468d0a5f
6
+ metadata.gz: 2972f704cc11a8e6075bd3a2adff8cc560a318af551bc91dbb751f82777f75b23d0419c4fc43f7618f2d02dcdce79fab57757ab1ba9e1f9dda70f090ef8e0dc8
7
+ data.tar.gz: e367b0b4e7e5faf9ae965a8cd807b5ac775e8e4b431604ec5500590308488d960523fff4fd8b1b5a0c687425e466eb8be98d5b8e136baeb491d3b74f667fc672
@@ -58,6 +58,14 @@ class PackageFlavorDoesNotExist < FlavorError
58
58
  end
59
59
  end
60
60
 
61
+ class WouldOverwriteError < RuntimeError
62
+ def initialize dest, src
63
+ super %Q(Refusing to overwrite #{dest} with #{src}
64
+ Use glob pattern in .lace.yaml like #{src.basename}/**/*
65
+ or invoke lace with `--force` to create backup of #{dest})
66
+ end
67
+ end
68
+
61
69
  class ManifestErbError < RuntimeError
62
70
  def initialize fact, exception
63
71
  super "#{exception.to_s}\nin #{fact.facts_file}"
@@ -43,7 +43,7 @@ class PackageFacts
43
43
  end
44
44
 
45
45
  def has_key? key
46
- @unflavorable_facts && ( @unflavorable_facts.has_key?(key) or @facts.has_key?(key))
46
+ @unflavorable_facts && (@unflavorable_facts.has_key?(key) or @facts.has_key?(key))
47
47
  end
48
48
 
49
49
  def version
@@ -87,11 +87,11 @@ class PackageFacts
87
87
  protected
88
88
  def facts_file_to_hash
89
89
  begin
90
- rendered_manifest = ERB.new(@facts_file.read, nil, '-').result(binding)
90
+ rendered_manifest = ERB.new(@facts_file.read, trim_mode: '-').result(binding)
91
91
  rescue Exception => e
92
92
  raise ManifestErbError.new(self, e)
93
93
  end
94
- value = YAML.load rendered_manifest
94
+ value = YAML.load rendered_manifest, aliases: true
95
95
  if value.is_a?(String) && value == "---"
96
96
  return Hash.new
97
97
  else
@@ -82,14 +82,15 @@ class Package
82
82
  # if ends in erb -> generate it
83
83
  src = file
84
84
  dest = src.as_dotfile(home_dir, @path)
85
- if dest.exist? && dest.directory? && ARGV.force?
85
+ if dest.exist? && dest.directory?
86
+ raise WouldOverwriteError.new(dest, src) unless ARGV.force?
86
87
  FileUtils.mv dest, dest.as_backup
87
88
  end
88
89
  link_file_or_directory src, dest
89
90
  end
90
91
 
91
92
  def link_file_or_directory(src, dest)
92
- if !dest.dirname.exist?
93
+ unless dest.dirname.exist?
93
94
  dest.dirname.mkpath
94
95
  end
95
96
  FileUtils.ln_s src, dest, :force => ARGV.force?
data/lib/lace/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lace
2
- VERSION = "0.4.4"
2
+ VERSION = "0.5.0"
3
3
  end
metadata CHANGED
@@ -1,17 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lace
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.5.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kai Richard Koenig
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-20 00:00:00.000000000 Z
11
+ date: 2024-12-12 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Lace lets you manage your dotfiles when using them on multiple machines
14
- email: kai@kairichardkoenig.de
14
+ email: kai.richard.koenig@gmail.com
15
15
  executables:
16
16
  - lace
17
17
  extensions: []
@@ -45,7 +45,7 @@ homepage: https://github.com/kairichard/lace
45
45
  licenses:
46
46
  - MIT
47
47
  metadata: {}
48
- post_install_message:
48
+ post_install_message:
49
49
  rdoc_options: []
50
50
  require_paths:
51
51
  - lib
@@ -53,15 +53,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - ">="
55
55
  - !ruby/object:Gem::Version
56
- version: 1.8.6
56
+ version: 3.0.0
57
57
  required_rubygems_version: !ruby/object:Gem::Requirement
58
58
  requirements:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: '0'
62
62
  requirements: []
63
- rubygems_version: 3.1.2
64
- signing_key:
63
+ rubygems_version: 3.5.22
64
+ signing_key:
65
65
  specification_version: 4
66
66
  summary: Manage your .dotfiles
67
67
  test_files: []