dorian-dot 0.4.3 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/bin/dot +17 -0
  3. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a24ce8f511746719bb0c6d319d707901a05ae2238d5fe487e4f9cf6a2c296fec
4
- data.tar.gz: 17a8f89439f7368f26e8966e27ea6122c78176f2e8af959ecb52f6ede51d160d
3
+ metadata.gz: d2a646048b4480907985ee1e28d542a4d7d570df867d3de8fa10f66939e7d310
4
+ data.tar.gz: 68543d7473bc4b88c4ec953740e6ccef36a4053f10bff7bcbb9ea096f3da82bb
5
5
  SHA512:
6
- metadata.gz: cf5d22bf26c17be70e7fd469c75dd4739150c879c4221745ec52dc18fabbbf3f742b27be01cbbaad6d4ad655f201973d9261f2d6bb906852b613817c913f9af3
7
- data.tar.gz: eac76c2e4630a8c91cc7b137d3ab039a1f207a99d0b59df5e7c5681668bf48d499f2e48cdf7066009bb52ccb6975ff155b0e08824bce0e907ea1a5e3fa9b0aa5
6
+ metadata.gz: 98243f9c57c1fe2ef65cf2d1e9c84d2d82ebedaf14171bb1c2850f0bac1bf14d099e1104c0046f6ffeb3bcd542bee0f47ff18652e89ae25c1ab828ad5d06ef76
7
+ data.tar.gz: f24597294b1eb9fabd0e079d24bd9313d321f55e475c73bca31d2d022946fa4de3a893f25a94c5f2d9763d7212b2efb24f1aafbe5a230c448c00f83ded188bba
data/bin/dot CHANGED
@@ -9,13 +9,30 @@ if ARGV.size != 1
9
9
  exit
10
10
  end
11
11
 
12
+ IGNORE_FILE = File.expand_path("#{ARGV.first.chomp("/")}/.dotignore")
13
+ IGNORE_CONTENT = File.exist?(IGNORE_FILE) ? File.read(IGNORE_FILE) : ""
14
+
15
+ IGNORE_PATTERNS =
16
+ IGNORE_CONTENT
17
+ .lines
18
+ .map(&:strip)
19
+ .reject { |line| line.empty? || line.start_with?("#") }
20
+ .map { |pattern| Regexp.new("\\A#{pattern}\\z") }
21
+
22
+ def ignore?(path)
23
+ IGNORE_PATTERNS.any? { |pattern| pattern.match?(path) }
24
+ end
25
+
12
26
  Git
13
27
  .open(ARGV.first)
14
28
  .ls_files
15
29
  .map(&:first)
16
30
  .each do |file|
31
+ next if ignore?(file)
32
+
17
33
  homefile = "#{Dir.home}/#{file}"
18
34
  dotfile = File.expand_path("#{ARGV.first.chomp("/")}/#{file}")
19
35
  File.delete(homefile) if File.exist?(homefile) || File.symlink?(homefile)
36
+ FileUtils.mkdir_p(File.dirname(dotfile))
20
37
  FileUtils.ln_s(dotfile, homefile, verbose: true)
21
38
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dorian-dot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.5.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dorian Marié
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-03-09 00:00:00.000000000 Z
11
+ date: 2024-04-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: git
@@ -48,7 +48,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
48
48
  requirements:
49
49
  - - ">="
50
50
  - !ruby/object:Gem::Version
51
- version: '0'
51
+ version: 3.3.0
52
52
  required_rubygems_version: !ruby/object:Gem::Requirement
53
53
  requirements:
54
54
  - - ">="