lace 0.4.4 → 0.5.0

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,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: []