lace 0.5.0 → 0.5.1

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: d98c40941c6f892e520dbd99ba1d29f7a3485ce59353e12efbe8268ec38cbe68
4
- data.tar.gz: 6f04e59649921e470016585f28390e13c3b3e6fed0c229bb47cf291d2c795999
3
+ metadata.gz: 46881767c22f451c4e42104713158a054acfe41eee483ab2cac43416d8e99738
4
+ data.tar.gz: b8d483c8695e034ddd022522362b8aaad46a9947c98bf02bd92f9880cbda3280
5
5
  SHA512:
6
- metadata.gz: 2972f704cc11a8e6075bd3a2adff8cc560a318af551bc91dbb751f82777f75b23d0419c4fc43f7618f2d02dcdce79fab57757ab1ba9e1f9dda70f090ef8e0dc8
7
- data.tar.gz: e367b0b4e7e5faf9ae965a8cd807b5ac775e8e4b431604ec5500590308488d960523fff4fd8b1b5a0c687425e466eb8be98d5b8e136baeb491d3b74f667fc672
6
+ metadata.gz: 3200530a5a2007710f79508f5027c1caa72bf08377f296a6adb6b94db404a7b6dca9abbcd5dfe7d9e8bc1945741c9f61299e06cbf7e15a5ac74e2ced4d81ee1e
7
+ data.tar.gz: 0a6019e2cae178f0a276ecc943466445f493b6a30df7f0ae5f36db9a344b2641bfde336cced8e6be47e02b979ed7d749632d6e0057e544a65d21b50f3c219242
data/lib/cmd/list.rb CHANGED
@@ -2,38 +2,20 @@ require 'lace/package'
2
2
 
3
3
  module Lace extend self
4
4
 
5
- def linked_files
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
18
- end
19
-
20
5
  def active_packages
21
- linked_files.map do |path|
22
- Pathname.new(File.dirname(path)).basename.to_s
23
- end.uniq
6
+ installed_packages.select(&:is_active?)
24
7
  end
25
8
 
26
9
  def installed_packages
27
10
  Dir.glob(File.join(Lace.pkgs_folder, "**")).sort.map do |p|
28
- Pathname.new(p).basename.to_s
11
+ Package.new(Pathname.new(p).basename.to_s, false)
29
12
  end
30
13
  end
31
14
 
32
15
  def list
33
16
  if installed_packages.length > 0
34
- installed_packages.map do |d|
35
- package = Package.new(d, false)
36
- puts "[#{Tty.green}#{package.is_active? ? "*" : " "}#{Tty.reset}] #{d}#{package.is_modified? ? " (has local changes)":""}"
17
+ installed_packages.map do |package|
18
+ puts "[#{Tty.green}#{package.is_active? ? "*" : " "}#{Tty.reset}] #{package.name}#{package.is_modified? ? " (has local changes)":""}"
37
19
  end
38
20
  else
39
21
  puts "There are no pkgs installed"
@@ -7,10 +7,9 @@ class Package
7
7
  attr_reader :name, :facts, :path
8
8
 
9
9
  def initialize name, flavor=nil
10
- require 'cmd/list'
11
- raise PackageNotInstalled.new(name) unless Lace.installed_packages.include?(name)
12
10
  @name = name
13
11
  @path = Lace.pkgs_folder/name
12
+ raise PackageNotInstalled.new(name) unless @path.exist?
14
13
  @flavor = flavor
15
14
  read_facts!
16
15
  end
@@ -46,12 +45,15 @@ class Package
46
45
  end
47
46
 
48
47
  def is_active?
48
+ home_dir = ENV["HOME"]
49
49
  if @facts.has_flavors? && @flavor == false
50
50
  @facts.flavors.any?{|f| Package.new(@name, f).is_active?}
51
51
  else
52
- linked_files = Set.new Lace.linked_files.map(&:to_s)
53
- config_files = Set.new @facts.config_files.map(&:to_s)
54
- config_files.subset? linked_files
52
+ config_files = Set.new @facts.config_files
53
+ config_files.all? do |p|
54
+ dotfile = p.as_dotfile(home_dir, @path)
55
+ dotfile.exist? and dotfile.symlink? and dotfile.readlink.dirname.to_s.include?(@path)
56
+ end
55
57
  end
56
58
  end
57
59
 
@@ -90,6 +92,7 @@ class Package
90
92
  end
91
93
 
92
94
  def link_file_or_directory(src, dest)
95
+ puts "link_file"
93
96
  unless dest.dirname.exist?
94
97
  dest.dirname.mkpath
95
98
  end
data/lib/lace/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Lace
2
- VERSION = "0.5.0"
2
+ VERSION = "0.5.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.5.0
4
+ version: 0.5.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: 2024-12-12 00:00:00.000000000 Z
11
+ date: 2024-12-13 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.richard.koenig@gmail.com