homesick 0.9.0 → 0.9.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/ChangeLog.markdown +3 -0
- data/Rakefile +1 -1
- data/homesick.gemspec +17 -12
- data/lib/homesick/actions.rb +2 -4
- data/spec/homesick_spec.rb +19 -0
- metadata +124 -121
data/ChangeLog.markdown
CHANGED
data/Rakefile
CHANGED
@@ -22,7 +22,7 @@ Jeweler::Tasks.new do |gem|
|
|
22
22
|
gem.email = ["josh@technicalpickles.com", "info@muratayusuke.com"]
|
23
23
|
gem.homepage = "http://github.com/technicalpickles/homesick"
|
24
24
|
gem.authors = ["Joshua Nichols", "Yusuke Murata"]
|
25
|
-
gem.version = "0.9.
|
25
|
+
gem.version = "0.9.1"
|
26
26
|
gem.license = "MIT"
|
27
27
|
# Have dependencies? Add them to Gemfile
|
28
28
|
|
data/homesick.gemspec
CHANGED
@@ -4,15 +4,20 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "0.9.
|
7
|
+
s.name = %q{homesick}
|
8
|
+
s.version = "0.9.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = [
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
|
15
|
-
|
11
|
+
s.authors = [%q{Joshua Nichols}, %q{Yusuke Murata}]
|
12
|
+
s.date = %q{2013-06-17}
|
13
|
+
s.description = %q{
|
14
|
+
A man's home (directory) is his castle, so don't leave home with out it.
|
15
|
+
|
16
|
+
Homesick is sorta like rip, but for dotfiles. It uses git to clone a repository containing dotfiles, and saves them in ~/.homesick. It then allows you to symlink all the dotfiles into place with a single command.
|
17
|
+
|
18
|
+
}
|
19
|
+
s.email = [%q{josh@technicalpickles.com}, %q{info@muratayusuke.com}]
|
20
|
+
s.executables = [%q{homesick}]
|
16
21
|
s.extra_rdoc_files = [
|
17
22
|
"ChangeLog.markdown",
|
18
23
|
"LICENSE",
|
@@ -37,11 +42,11 @@ Gem::Specification.new do |s|
|
|
37
42
|
"spec/spec.opts",
|
38
43
|
"spec/spec_helper.rb"
|
39
44
|
]
|
40
|
-
s.homepage =
|
41
|
-
s.licenses = [
|
42
|
-
s.require_paths = [
|
43
|
-
s.rubygems_version =
|
44
|
-
s.summary =
|
45
|
+
s.homepage = %q{http://github.com/technicalpickles/homesick}
|
46
|
+
s.licenses = [%q{MIT}]
|
47
|
+
s.require_paths = [%q{lib}]
|
48
|
+
s.rubygems_version = %q{1.8.5}
|
49
|
+
s.summary = %q{A man's home is his castle. Never leave your dotfiles behind.}
|
45
50
|
|
46
51
|
if s.respond_to? :specification_version then
|
47
52
|
s.specification_version = 3
|
data/lib/homesick/actions.rb
CHANGED
@@ -3,10 +3,7 @@ class Homesick
|
|
3
3
|
# TODO move this to be more like thor's template, empty_directory, etc
|
4
4
|
def git_clone(repo, config = {})
|
5
5
|
config ||= {}
|
6
|
-
destination = config[:destination] ||
|
7
|
-
repo =~ /([^\/]+)(?:\.git)?$/
|
8
|
-
$1
|
9
|
-
end
|
6
|
+
destination = config[:destination] || File.basename(repo, '.git')
|
10
7
|
|
11
8
|
destination = Pathname.new(destination) unless destination.kind_of?(Pathname)
|
12
9
|
FileUtils.mkdir_p destination.dirname
|
@@ -109,6 +106,7 @@ class Homesick
|
|
109
106
|
say_status :conflict, "#{destination} exists", :red unless options[:quiet]
|
110
107
|
|
111
108
|
if options[:force] || shell.file_collision(destination) { source }
|
109
|
+
system "rm -rf #{destination}" unless options[:pretend]
|
112
110
|
system "ln -sf #{source} #{destination}" unless options[:pretend]
|
113
111
|
end
|
114
112
|
else
|
data/spec/homesick_spec.rb
CHANGED
@@ -39,6 +39,14 @@ describe "homesick" do
|
|
39
39
|
end
|
40
40
|
end
|
41
41
|
|
42
|
+
it "should clone git repo like file:///path/to.git" do
|
43
|
+
bare_repo = File.join(create_construct.to_s, "dotfiles.git")
|
44
|
+
system "git init --bare #{bare_repo} >/dev/null 2>&1"
|
45
|
+
|
46
|
+
homesick.clone "file://#{bare_repo}"
|
47
|
+
File.directory?(File.join(home.to_s, '.homesick/repos/dotfiles')).should be_true
|
48
|
+
end
|
49
|
+
|
42
50
|
it "should clone git repo like git://host/path/to.git" do
|
43
51
|
homesick.should_receive(:git_clone).with('git://github.com/technicalpickles/pickled-vim.git')
|
44
52
|
|
@@ -119,6 +127,17 @@ describe "homesick" do
|
|
119
127
|
|
120
128
|
existing_dotdir_link.readlink.should == dotdir
|
121
129
|
end
|
130
|
+
|
131
|
+
it "can override existing directory" do
|
132
|
+
somewhere_else = create_construct
|
133
|
+
existing_dotdir = home.directory(".vim")
|
134
|
+
|
135
|
+
dotdir = castle.directory(".vim")
|
136
|
+
|
137
|
+
homesick.symlink("glencairn")
|
138
|
+
|
139
|
+
existing_dotdir.readlink.should == dotdir
|
140
|
+
end
|
122
141
|
end
|
123
142
|
|
124
143
|
context "with '.config' in .homesick_subdir" do
|
metadata
CHANGED
@@ -1,144 +1,141 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: homesick
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 57
|
5
5
|
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 9
|
9
|
+
- 1
|
10
|
+
version: 0.9.1
|
6
11
|
platform: ruby
|
7
|
-
authors:
|
12
|
+
authors:
|
8
13
|
- Joshua Nichols
|
9
14
|
- Yusuke Murata
|
10
15
|
autorequire:
|
11
16
|
bindir: bin
|
12
17
|
cert_chain: []
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
-
none: false
|
19
|
-
requirements:
|
20
|
-
- - ! '>='
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 0.14.0
|
23
|
-
type: :runtime
|
18
|
+
|
19
|
+
date: 2013-06-17 00:00:00 Z
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
24
22
|
prerelease: false
|
25
|
-
|
23
|
+
type: :runtime
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
25
|
none: false
|
27
|
-
requirements:
|
28
|
-
- -
|
29
|
-
- !ruby/object:Gem::Version
|
26
|
+
requirements:
|
27
|
+
- - ">="
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
hash: 39
|
30
|
+
segments:
|
31
|
+
- 0
|
32
|
+
- 14
|
33
|
+
- 0
|
30
34
|
version: 0.14.0
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
none: false
|
35
|
-
requirements:
|
36
|
-
- - ! '>='
|
37
|
-
- !ruby/object:Gem::Version
|
38
|
-
version: 0.8.7
|
39
|
-
type: :development
|
35
|
+
name: thor
|
36
|
+
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
40
38
|
prerelease: false
|
41
|
-
|
39
|
+
type: :development
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
42
41
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 49
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
- 8
|
49
|
+
- 7
|
46
50
|
version: 0.8.7
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
none: false
|
51
|
-
requirements:
|
52
|
-
- - ~>
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '2.10'
|
55
|
-
type: :development
|
51
|
+
name: rake
|
52
|
+
version_requirements: *id002
|
53
|
+
- !ruby/object:Gem::Dependency
|
56
54
|
prerelease: false
|
57
|
-
|
55
|
+
type: :development
|
56
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
58
57
|
none: false
|
59
|
-
requirements:
|
58
|
+
requirements:
|
60
59
|
- - ~>
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
hash: 23
|
62
|
+
segments:
|
63
|
+
- 2
|
64
|
+
- 10
|
65
|
+
version: "2.10"
|
66
|
+
name: rspec
|
67
|
+
version_requirements: *id003
|
68
|
+
- !ruby/object:Gem::Dependency
|
69
|
+
prerelease: false
|
70
|
+
type: :development
|
71
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
72
|
none: false
|
67
|
-
requirements:
|
68
|
-
- -
|
69
|
-
- !ruby/object:Gem::Version
|
73
|
+
requirements:
|
74
|
+
- - ">="
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
hash: 11
|
77
|
+
segments:
|
78
|
+
- 1
|
79
|
+
- 6
|
80
|
+
- 2
|
70
81
|
version: 1.6.2
|
71
|
-
|
82
|
+
name: jeweler
|
83
|
+
version_requirements: *id004
|
84
|
+
- !ruby/object:Gem::Dependency
|
72
85
|
prerelease: false
|
73
|
-
|
86
|
+
type: :development
|
87
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
74
88
|
none: false
|
75
|
-
requirements:
|
76
|
-
- -
|
77
|
-
- !ruby/object:Gem::Version
|
78
|
-
|
79
|
-
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
hash: 3
|
93
|
+
segments:
|
94
|
+
- 0
|
95
|
+
version: "0"
|
80
96
|
name: rcov
|
81
|
-
|
82
|
-
|
83
|
-
requirements:
|
84
|
-
- - ! '>='
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
version: '0'
|
87
|
-
type: :development
|
97
|
+
version_requirements: *id005
|
98
|
+
- !ruby/object:Gem::Dependency
|
88
99
|
prerelease: false
|
89
|
-
|
100
|
+
type: :development
|
101
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
90
102
|
none: false
|
91
|
-
requirements:
|
92
|
-
- -
|
93
|
-
- !ruby/object:Gem::Version
|
94
|
-
|
95
|
-
|
103
|
+
requirements:
|
104
|
+
- - ">="
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
hash: 3
|
107
|
+
segments:
|
108
|
+
- 0
|
109
|
+
version: "0"
|
96
110
|
name: simplecov
|
97
|
-
|
98
|
-
|
99
|
-
requirements:
|
100
|
-
- - ! '>='
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version: '0'
|
103
|
-
type: :development
|
111
|
+
version_requirements: *id006
|
112
|
+
- !ruby/object:Gem::Dependency
|
104
113
|
prerelease: false
|
105
|
-
version_requirements: !ruby/object:Gem::Requirement
|
106
|
-
none: false
|
107
|
-
requirements:
|
108
|
-
- - ! '>='
|
109
|
-
- !ruby/object:Gem::Version
|
110
|
-
version: '0'
|
111
|
-
- !ruby/object:Gem::Dependency
|
112
|
-
name: test-construct
|
113
|
-
requirement: !ruby/object:Gem::Requirement
|
114
|
-
none: false
|
115
|
-
requirements:
|
116
|
-
- - ! '>='
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '0'
|
119
114
|
type: :development
|
120
|
-
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
115
|
+
requirement: &id007 !ruby/object:Gem::Requirement
|
122
116
|
none: false
|
123
|
-
requirements:
|
124
|
-
- -
|
125
|
-
- !ruby/object:Gem::Version
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
117
|
+
requirements:
|
118
|
+
- - ">="
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
hash: 3
|
121
|
+
segments:
|
122
|
+
- 0
|
123
|
+
version: "0"
|
124
|
+
name: test-construct
|
125
|
+
version_requirements: *id007
|
126
|
+
description: "\n A man's home (directory) is his castle, so don't leave home with out it.\n\n Homesick is sorta like rip, but for dotfiles. It uses git to clone a repository containing dotfiles, and saves them in ~/.homesick. It then allows you to symlink all the dotfiles into place with a single command. \n\n "
|
127
|
+
email:
|
132
128
|
- josh@technicalpickles.com
|
133
129
|
- info@muratayusuke.com
|
134
|
-
executables:
|
130
|
+
executables:
|
135
131
|
- homesick
|
136
132
|
extensions: []
|
137
|
-
|
133
|
+
|
134
|
+
extra_rdoc_files:
|
138
135
|
- ChangeLog.markdown
|
139
136
|
- LICENSE
|
140
137
|
- README.markdown
|
141
|
-
files:
|
138
|
+
files:
|
142
139
|
- .document
|
143
140
|
- .rspec
|
144
141
|
- .travis.yml
|
@@ -157,31 +154,37 @@ files:
|
|
157
154
|
- spec/spec.opts
|
158
155
|
- spec/spec_helper.rb
|
159
156
|
homepage: http://github.com/technicalpickles/homesick
|
160
|
-
licenses:
|
157
|
+
licenses:
|
161
158
|
- MIT
|
162
159
|
post_install_message:
|
163
160
|
rdoc_options: []
|
164
|
-
|
161
|
+
|
162
|
+
require_paths:
|
165
163
|
- lib
|
166
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
164
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
167
165
|
none: false
|
168
|
-
requirements:
|
169
|
-
- -
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
|
172
|
-
segments:
|
166
|
+
requirements:
|
167
|
+
- - ">="
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
hash: 3
|
170
|
+
segments:
|
173
171
|
- 0
|
174
|
-
|
175
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
172
|
+
version: "0"
|
173
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
176
174
|
none: false
|
177
|
-
requirements:
|
178
|
-
- -
|
179
|
-
- !ruby/object:Gem::Version
|
180
|
-
|
175
|
+
requirements:
|
176
|
+
- - ">="
|
177
|
+
- !ruby/object:Gem::Version
|
178
|
+
hash: 3
|
179
|
+
segments:
|
180
|
+
- 0
|
181
|
+
version: "0"
|
181
182
|
requirements: []
|
183
|
+
|
182
184
|
rubyforge_project:
|
183
|
-
rubygems_version: 1.8.
|
185
|
+
rubygems_version: 1.8.5
|
184
186
|
signing_key:
|
185
187
|
specification_version: 3
|
186
188
|
summary: A man's home is his castle. Never leave your dotfiles behind.
|
187
189
|
test_files: []
|
190
|
+
|