dottor 0.3.0 → 0.3.1
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.
- data/Gemfile +1 -0
- data/Gemfile.lock +2 -0
- data/README.md +2 -11
- data/lib/dottor/dotfile.rb +7 -1
- data/lib/dottor/version.rb +1 -1
- data/spec/dotfile_spec.rb +17 -0
- data/spec/spec_helper.rb +3 -0
- metadata +2 -3
- data/README +0 -76
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -13,7 +13,7 @@ with existing dotfiles repos.
|
|
13
13
|
|
14
14
|
With Dottor you can:
|
15
15
|
|
16
|
-
1. Get started with
|
16
|
+
1. Get started with your current dotfiles repo, without changing anything.
|
17
17
|
2. Specify different profiles, so that you can use it to symlink files in your
|
18
18
|
dev machine as well as in your production boxes.
|
19
19
|
|
@@ -32,39 +32,30 @@ 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
|
|
38
39
|
Getting started
|
39
40
|
---------------
|
40
41
|
|
41
|
-
```
|
42
42
|
gem install dottor
|
43
|
-
```
|
44
43
|
|
45
44
|
### Create a dottor_rules.yml inside your dotfiles repo
|
46
45
|
|
47
|
-
```
|
48
46
|
dottor init
|
49
|
-
```
|
50
47
|
|
51
48
|
### Create symlinks based on dottor_rules.yml file in current directory
|
52
49
|
|
53
|
-
```
|
54
50
|
dottor symlink <profile_name>
|
55
|
-
```
|
56
51
|
|
57
52
|
### Specify a dottor_rules.yml file in another directory
|
58
53
|
|
59
|
-
```
|
60
54
|
dottor symlink <profile_name> -f <custom_path>
|
61
|
-
```
|
62
55
|
|
63
56
|
### Delete all the symlinks
|
64
57
|
|
65
|
-
```
|
66
58
|
dottor symlink -d
|
67
|
-
```
|
68
59
|
|
69
60
|
Submitting a Pull Request
|
70
61
|
-------------------------
|
data/lib/dottor/dotfile.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'fileutils'
|
2
|
+
|
1
3
|
module Dottor
|
2
4
|
class Dotfile
|
3
5
|
attr_accessor :source, :target
|
@@ -33,8 +35,12 @@ module Dottor
|
|
33
35
|
FileUtils.rm target
|
34
36
|
end
|
35
37
|
|
38
|
+
if !File.exists?(File.dirname(target))
|
39
|
+
FileUtils.mkdir_p(File.dirname(target))
|
40
|
+
end
|
41
|
+
|
36
42
|
$stdout.puts("Create symlink #{File.join(current_path, source)} -> #{target}")
|
37
|
-
|
43
|
+
File.symlink(File.join(current_path, source), target)
|
38
44
|
end
|
39
45
|
|
40
46
|
def delete_symlink
|
data/lib/dottor/version.rb
CHANGED
data/spec/dotfile_spec.rb
CHANGED
@@ -19,4 +19,21 @@ describe Dottor::Dotfile do
|
|
19
19
|
dotfile.target.should eq("/home/stevejobs/.gitconfig")
|
20
20
|
end
|
21
21
|
end
|
22
|
+
|
23
|
+
describe "#create_symlink", fakefs: true do
|
24
|
+
it "should create directories that don't exist in the target location" do
|
25
|
+
source = "/tmp/woot/immaconfig"
|
26
|
+
target = "/tmp/nodir/immaconfig"
|
27
|
+
dotfile = Dottor::Dotfile.new("source" => source, "target" => target)
|
28
|
+
FileUtils.mkdir("/tmp")
|
29
|
+
FileUtils.mkdir("/tmp/woot")
|
30
|
+
File.open(source, "w") do |f|
|
31
|
+
f.puts "CONFIG YEAH"
|
32
|
+
end
|
33
|
+
|
34
|
+
File.exists?("/tmp/nodir").should be_false
|
35
|
+
dotfile.create_symlink
|
36
|
+
File.symlink?(target).should be_true
|
37
|
+
end
|
38
|
+
end
|
22
39
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -3,12 +3,15 @@ require 'rspec'
|
|
3
3
|
$:.unshift(File.join(File.dirname(__FILE__), "..", "lib"))
|
4
4
|
require 'dottor'
|
5
5
|
require 'helpers/utils'
|
6
|
+
require 'fakefs/spec_helpers'
|
6
7
|
|
7
8
|
RSpec.configure do |c|
|
8
9
|
c.include Utils
|
9
10
|
|
10
11
|
c.mock_with :rspec
|
11
12
|
|
13
|
+
c.include FakeFS::SpecHelpers, fakefs: true
|
14
|
+
|
12
15
|
c.before(:each) do
|
13
16
|
# STDOUT.should_receive(:puts).at_least(1).times.and_return("")
|
14
17
|
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.3.
|
4
|
+
version: 0.3.1
|
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-10-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: thor
|
@@ -56,7 +56,6 @@ files:
|
|
56
56
|
- Gemfile
|
57
57
|
- Gemfile.lock
|
58
58
|
- LICENSE.md
|
59
|
-
- README
|
60
59
|
- README.md
|
61
60
|
- bin/dottor
|
62
61
|
- dottor.gemspec
|
data/README
DELETED
@@ -1,76 +0,0 @@
|
|
1
|
-
Dottor
|
2
|
-
======
|
3
|
-
|
4
|
-
Description
|
5
|
-
-----------
|
6
|
-
Dottor is an unobtrusive command line tool for easily managing your dotfiles,
|
7
|
-
without assumptions on how your dotfiles repository should be organized.
|
8
|
-
|
9
|
-
Why Dottor?
|
10
|
-
-----------
|
11
|
-
I designed dottor so that it would be easy to setup and use, reliable and work
|
12
|
-
with existing dotfiles repos.
|
13
|
-
|
14
|
-
With Dottor you can:
|
15
|
-
|
16
|
-
1. Get started with yout current dotfils repo, without changing anything.
|
17
|
-
2. Specify different profiles, so that you can use it to symlink files in your
|
18
|
-
dev machine as well as in your production boxes.
|
19
|
-
|
20
|
-
How it works?
|
21
|
-
-------------
|
22
|
-
|
23
|
-
Dottor expect to find in your repo a YAML file named dottor_rules.yml (or you
|
24
|
-
can specify a different path) with the following format
|
25
|
-
|
26
|
-
```ruby
|
27
|
-
profile_name:
|
28
|
-
- source: <dotffile or directory>
|
29
|
-
target: <where do you want the file to be symlinked to>
|
30
|
-
- source: <dotffile or directory>
|
31
|
-
target: <where do you want the file to be symlinked to>
|
32
|
-
```
|
33
|
-
|
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.
|
36
|
-
Check my [dotfiles repo][dotfiles_repo] for a working example.
|
37
|
-
|
38
|
-
|
39
|
-
Getting started
|
40
|
-
---------------
|
41
|
-
|
42
|
-
gem install dottor
|
43
|
-
|
44
|
-
### Create a dottor_rules.yml inside your dotfiles repo
|
45
|
-
|
46
|
-
dottor init
|
47
|
-
|
48
|
-
### Create symlinks based on dottor_rules.yml file in current directory
|
49
|
-
|
50
|
-
dottor symlink <profile_name>
|
51
|
-
|
52
|
-
### Specify a dottor_rules.yml file in another directory
|
53
|
-
|
54
|
-
dottor symlink <profile_name> -f <custom_path>
|
55
|
-
|
56
|
-
### Delete all the symlinks
|
57
|
-
|
58
|
-
dottor symlink -d
|
59
|
-
|
60
|
-
Submitting a Pull Request
|
61
|
-
-------------------------
|
62
|
-
|
63
|
-
1. Fork the project.
|
64
|
-
2. Create a topic branch.
|
65
|
-
3. Implement your feature or bug fix.
|
66
|
-
4. Add documentation for your feature or bug fix.
|
67
|
-
6. Add specs for your feature or bug fix.
|
68
|
-
8. Commit and push your changes.
|
69
|
-
|
70
|
-
License
|
71
|
-
-------
|
72
|
-
Released under the MIT License. See the [LICENSE][license] file for further
|
73
|
-
details.
|
74
|
-
|
75
|
-
[license]: https://github.com/marcocampana/dottor/blob/master/LICENSE.md
|
76
|
-
[dotfiles_repo]: https://github.com/marcocampana/dotfiles
|