dottor 0.2.0 → 0.3.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README +1 -0
- data/dottor_rules.sample.yml +16 -0
- data/lib/dottor/dotfile.rb +14 -0
- data/lib/dottor/version.rb +1 -1
- data/spec/dotfile_spec.rb +22 -0
- metadata +5 -2
data/README
CHANGED
@@ -32,6 +32,7 @@ can specify a different path) with the following format
|
|
32
32
|
```
|
33
33
|
|
34
34
|
All the actions performed by Dottor are based on the dottor_rules.yml file.
|
35
|
+
For some examples, see the [dottor_rules.sample.yml](https://github.com/marcocampana/dottor/blob/master/dottor_rules.sample.yml) file.
|
35
36
|
Check my [dotfiles repo][dotfiles_repo] for a working example.
|
36
37
|
|
37
38
|
|
@@ -0,0 +1,16 @@
|
|
1
|
+
---
|
2
|
+
default:
|
3
|
+
- source: vimrc
|
4
|
+
target: ~/.vimrc
|
5
|
+
|
6
|
+
# Targets can resolve to the home directory of the executing user:
|
7
|
+
- source: gitconfig
|
8
|
+
target: ~/.gitconfig
|
9
|
+
|
10
|
+
# .. or to a specifc user:
|
11
|
+
- source: gitconfig
|
12
|
+
target: ~ada/.gitconfig
|
13
|
+
|
14
|
+
# .. or can be absolute directory references:
|
15
|
+
- source: client.rb
|
16
|
+
target: /etc/chef/client.rb
|
data/lib/dottor/dotfile.rb
CHANGED
@@ -7,6 +7,20 @@ module Dottor
|
|
7
7
|
@target = hash["target"]
|
8
8
|
end
|
9
9
|
|
10
|
+
# Public: Translate a relative target path to an absolute one
|
11
|
+
#
|
12
|
+
# Examples
|
13
|
+
#
|
14
|
+
# dotfile = Dottor::Dotfile.new "source" => "blah", "target" => ".gitconfig"
|
15
|
+
# dotfile.target
|
16
|
+
# # => '/Users/stevejobs/.gitconfig'
|
17
|
+
#
|
18
|
+
# Returns the absolute path for the given relative string. If the
|
19
|
+
# string is already absolute, return unmodified.
|
20
|
+
def target
|
21
|
+
@expanded_target ||= File.expand_path(@target, ENV['HOME'])
|
22
|
+
end
|
23
|
+
|
10
24
|
def create_symlink
|
11
25
|
# If file exists rename it to .old
|
12
26
|
# if File.exists?(target)
|
data/lib/dottor/version.rb
CHANGED
@@ -0,0 +1,22 @@
|
|
1
|
+
describe Dottor::Dotfile do
|
2
|
+
before(:each) do
|
3
|
+
ENV['HOME'] = "/home/stevejobs"
|
4
|
+
end
|
5
|
+
|
6
|
+
describe "#target" do
|
7
|
+
it "should leave an absolute filepath as is" do
|
8
|
+
dotfile = Dottor::Dotfile.new("source" => "/woot/gitconfig", "target" => "/home/woot/gitconfig")
|
9
|
+
dotfile.target.should eq("/home/woot/gitconfig")
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should return a path relative to the user's home directory" do
|
13
|
+
dotfile = Dottor::Dotfile.new("source" => "/woot/gitconig", "target" => ".gitconfig")
|
14
|
+
dotfile.target.should eq("/home/stevejobs/.gitconfig")
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should substitute the user's home directory for the tilde character, '~'" do
|
18
|
+
dotfile = Dottor::Dotfile.new("source" => "/woot/gitconig", "target" => "~/.gitconfig")
|
19
|
+
dotfile.target.should eq("/home/stevejobs/.gitconfig")
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dottor
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-09-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -60,10 +60,12 @@ files:
|
|
60
60
|
- README.md
|
61
61
|
- bin/dottor
|
62
62
|
- dottor.gemspec
|
63
|
+
- dottor_rules.sample.yml
|
63
64
|
- lib/dottor.rb
|
64
65
|
- lib/dottor/dotfile.rb
|
65
66
|
- lib/dottor/version.rb
|
66
67
|
- spec/app_spec.rb
|
68
|
+
- spec/dotfile_spec.rb
|
67
69
|
- spec/fixtures/dottor_rules.yml
|
68
70
|
- spec/helpers/utils.rb
|
69
71
|
- spec/spec_helper.rb
|
@@ -93,6 +95,7 @@ specification_version: 3
|
|
93
95
|
summary: Command line tool to manage dotfiles the easy way
|
94
96
|
test_files:
|
95
97
|
- spec/app_spec.rb
|
98
|
+
- spec/dotfile_spec.rb
|
96
99
|
- spec/fixtures/dottor_rules.yml
|
97
100
|
- spec/helpers/utils.rb
|
98
101
|
- spec/spec_helper.rb
|