gitback 0.1.0 → 0.1.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/Rakefile +1 -7
- data/VERSION +1 -1
- data/gitback.gemspec +67 -0
- data/lib/gitback/repository.rb +1 -1
- data/test/data/another/file.txt +0 -0
- data/test/data/another/test.txt +0 -0
- data/test/data/some/deep/.bash_profile +0 -0
- data/test/data/some/deep/directory/fstab +0 -0
- data/test/data/some/deep/directory/test.conf +1 -0
- data/test/data/some/deep/nginx.conf +1 -0
- data/test/data/some/test_file.txt +0 -0
- data/test/data/testing.txt +1 -0
- data/test/test_gitback.rb +110 -3
- metadata +35 -4
data/Rakefile
CHANGED
@@ -11,19 +11,13 @@ begin
|
|
11
11
|
gem.homepage = "http://github.com/brycethornton/gitback"
|
12
12
|
gem.authors = ["Bryce Thornton"]
|
13
13
|
gem.add_dependency "grit", ">= 2.0.0"
|
14
|
+
gem.add_development_dependency "shoulda"
|
14
15
|
end
|
15
16
|
Jeweler::GemcutterTasks.new
|
16
17
|
rescue LoadError
|
17
18
|
puts "Jeweler (or a dependency) not available. Install it with: gem install jeweler"
|
18
19
|
end
|
19
20
|
|
20
|
-
require 'rake/testtask'
|
21
|
-
Rake::TestTask.new(:test) do |test|
|
22
|
-
test.libs << 'lib' << 'test'
|
23
|
-
test.pattern = 'test/**/test_*.rb'
|
24
|
-
test.verbose = true
|
25
|
-
end
|
26
|
-
|
27
21
|
begin
|
28
22
|
require 'rcov/rcovtask'
|
29
23
|
Rcov::RcovTask.new do |test|
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.1
|
data/gitback.gemspec
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{gitback}
|
8
|
+
s.version = "0.1.1"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Bryce Thornton"]
|
12
|
+
s.date = %q{2010-05-20}
|
13
|
+
s.description = %q{Provide a list of files and/or directories and gitback will copy them to your git repo, commit and push when there are changes.}
|
14
|
+
s.email = %q{brycethornton@gmail.com}
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.md"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".gitignore",
|
22
|
+
"LICENSE",
|
23
|
+
"README.md",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION",
|
26
|
+
"gitback.gemspec",
|
27
|
+
"lib/gitback.rb",
|
28
|
+
"lib/gitback/repository.rb",
|
29
|
+
"test/data/another/file.txt",
|
30
|
+
"test/data/another/test.txt",
|
31
|
+
"test/data/some/deep/.bash_profile",
|
32
|
+
"test/data/some/deep/directory/fstab",
|
33
|
+
"test/data/some/deep/directory/test.conf",
|
34
|
+
"test/data/some/deep/nginx.conf",
|
35
|
+
"test/data/some/test_file.txt",
|
36
|
+
"test/data/testing.txt",
|
37
|
+
"test/helper.rb",
|
38
|
+
"test/repos/.gitignore",
|
39
|
+
"test/test_gitback.rb"
|
40
|
+
]
|
41
|
+
s.homepage = %q{http://github.com/brycethornton/gitback}
|
42
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
43
|
+
s.require_paths = ["lib"]
|
44
|
+
s.rubygems_version = %q{1.3.7}
|
45
|
+
s.summary = %q{A simple ruby library for backing up files to git}
|
46
|
+
s.test_files = [
|
47
|
+
"test/helper.rb",
|
48
|
+
"test/test_gitback.rb"
|
49
|
+
]
|
50
|
+
|
51
|
+
if s.respond_to? :specification_version then
|
52
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
53
|
+
s.specification_version = 3
|
54
|
+
|
55
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
56
|
+
s.add_runtime_dependency(%q<grit>, [">= 2.0.0"])
|
57
|
+
s.add_development_dependency(%q<shoulda>, [">= 0"])
|
58
|
+
else
|
59
|
+
s.add_dependency(%q<grit>, [">= 2.0.0"])
|
60
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
61
|
+
end
|
62
|
+
else
|
63
|
+
s.add_dependency(%q<grit>, [">= 2.0.0"])
|
64
|
+
s.add_dependency(%q<shoulda>, [">= 0"])
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
data/lib/gitback/repository.rb
CHANGED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
blah
|
@@ -0,0 +1 @@
|
|
1
|
+
hiya!
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
This is just test data.
|
data/test/test_gitback.rb
CHANGED
@@ -1,7 +1,114 @@
|
|
1
|
-
require
|
1
|
+
require "#{File.dirname(__FILE__)}/helper"
|
2
2
|
|
3
3
|
class TestGitback < Test::Unit::TestCase
|
4
|
-
|
5
|
-
|
4
|
+
context 'Gitback' do
|
5
|
+
setup do
|
6
|
+
@dirname = File.expand_path(File.dirname(__FILE__))
|
7
|
+
@remote_path = File.expand_path(File.join(@dirname, *%w[repos remote_repo]))
|
8
|
+
@local_path = File.expand_path(File.join(@dirname, *%w[repos local_repo]))
|
9
|
+
|
10
|
+
# Cleanup the "remote" repo from previous tests
|
11
|
+
if File.exists?(@remote_path)
|
12
|
+
FileUtils.remove_dir(@remote_path)
|
13
|
+
end
|
14
|
+
|
15
|
+
# Cleanup the "local" repo from previous tests
|
16
|
+
if File.exists?(@local_path)
|
17
|
+
FileUtils.remove_dir(@local_path)
|
18
|
+
end
|
19
|
+
|
20
|
+
# Create the "remote" repo directory
|
21
|
+
FileUtils.mkdir_p(@remote_path)
|
22
|
+
|
23
|
+
Dir.chdir(@remote_path) do
|
24
|
+
# Init the "remote" git repo and make first commit
|
25
|
+
`git init`
|
26
|
+
`touch README`
|
27
|
+
|
28
|
+
@remote_repo = Grit::Repo.new(@remote_path)
|
29
|
+
@remote_repo.add(@remote_path + '/*')
|
30
|
+
@remote_repo.commit_all("first commit")
|
31
|
+
end
|
32
|
+
|
33
|
+
# Clone the "remote" repo to a "local" repo
|
34
|
+
`git clone #{@remote_path} #{@local_path}`
|
35
|
+
end
|
36
|
+
|
37
|
+
should "handle basic file backups" do
|
38
|
+
files = []
|
39
|
+
files << "#{@dirname}/data/testing.txt"
|
40
|
+
files << "#{@dirname}/data/some/deep/nginx.conf"
|
41
|
+
|
42
|
+
output = Gitback::Repository.new @local_path do |repo|
|
43
|
+
files.each do |file|
|
44
|
+
repo.backup file
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
assert_files(files)
|
49
|
+
end
|
50
|
+
|
51
|
+
should "handle directory backups" do
|
52
|
+
output = Gitback::Repository.new @local_path do |repo|
|
53
|
+
repo.backup "#{@dirname}/data/another/"
|
54
|
+
repo.backup "#{@dirname}/data/some/deep/nginx.conf"
|
55
|
+
end
|
56
|
+
|
57
|
+
files = []
|
58
|
+
files << "#{@dirname}/data/another/file.txt"
|
59
|
+
files << "#{@dirname}/data/another/test.txt"
|
60
|
+
files << "#{@dirname}/data/some/deep/nginx.conf"
|
61
|
+
|
62
|
+
assert_files(files)
|
63
|
+
end
|
64
|
+
|
65
|
+
should "use namespaces" do
|
66
|
+
output = Gitback::Repository.new @local_path do |repo|
|
67
|
+
repo.namespace 'blah.domain.com' do
|
68
|
+
repo.backup "#{@dirname}/data/another/"
|
69
|
+
repo.backup "#{@dirname}/data/some/deep/nginx.conf"
|
70
|
+
end
|
71
|
+
end
|
72
|
+
|
73
|
+
# Make sure local repo has the files
|
74
|
+
files = []
|
75
|
+
files << "blah.domain.com/#{@dirname}/data/another/file.txt"
|
76
|
+
files << "blah.domain.com/#{@dirname}/data/another/test.txt"
|
77
|
+
files << "blah.domain.com/#{@dirname}/data/some/deep/nginx.conf"
|
78
|
+
|
79
|
+
assert_files(files)
|
80
|
+
end
|
81
|
+
|
82
|
+
should "deal with symlinks" do
|
83
|
+
# Create a symlink
|
84
|
+
linked_file = "#{@dirname}/data/linked.txt"
|
85
|
+
File.symlink("#{@dirname}/data/testing.txt", linked_file)
|
86
|
+
|
87
|
+
Gitback::Repository.new @local_path do |repo|
|
88
|
+
repo.backup linked_file
|
89
|
+
end
|
90
|
+
|
91
|
+
files = [linked_file]
|
92
|
+
|
93
|
+
assert_files(files)
|
94
|
+
|
95
|
+
# Delete the link for future tests
|
96
|
+
File.delete(linked_file)
|
97
|
+
end
|
98
|
+
end
|
99
|
+
|
100
|
+
def assert_files(file_array)
|
101
|
+
file_array.each do |file|
|
102
|
+
assert File.exists? "#{@local_path}/#{file}"
|
103
|
+
end
|
104
|
+
|
105
|
+
# Need to reset in order for the files to not be deleted
|
106
|
+
Dir.chdir(@remote_path) do
|
107
|
+
`git reset --hard`
|
108
|
+
end
|
109
|
+
|
110
|
+
file_array.each do |file|
|
111
|
+
assert File.exists? "#{@remote_path}/#{file}"
|
112
|
+
end
|
6
113
|
end
|
7
114
|
end
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gitback
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 25
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 0
|
7
8
|
- 1
|
8
|
-
-
|
9
|
-
version: 0.1.
|
9
|
+
- 1
|
10
|
+
version: 0.1.1
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- Bryce Thornton
|
@@ -14,16 +15,18 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-05-
|
18
|
+
date: 2010-05-20 00:00:00 -04:00
|
18
19
|
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
22
|
name: grit
|
22
23
|
prerelease: false
|
23
24
|
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
24
26
|
requirements:
|
25
27
|
- - ">="
|
26
28
|
- !ruby/object:Gem::Version
|
29
|
+
hash: 15
|
27
30
|
segments:
|
28
31
|
- 2
|
29
32
|
- 0
|
@@ -31,6 +34,20 @@ dependencies:
|
|
31
34
|
version: 2.0.0
|
32
35
|
type: :runtime
|
33
36
|
version_requirements: *id001
|
37
|
+
- !ruby/object:Gem::Dependency
|
38
|
+
name: shoulda
|
39
|
+
prerelease: false
|
40
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ">="
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
hash: 3
|
46
|
+
segments:
|
47
|
+
- 0
|
48
|
+
version: "0"
|
49
|
+
type: :development
|
50
|
+
version_requirements: *id002
|
34
51
|
description: Provide a list of files and/or directories and gitback will copy them to your git repo, commit and push when there are changes.
|
35
52
|
email: brycethornton@gmail.com
|
36
53
|
executables: []
|
@@ -47,9 +64,19 @@ files:
|
|
47
64
|
- README.md
|
48
65
|
- Rakefile
|
49
66
|
- VERSION
|
67
|
+
- gitback.gemspec
|
50
68
|
- lib/gitback.rb
|
51
69
|
- lib/gitback/repository.rb
|
70
|
+
- test/data/another/file.txt
|
71
|
+
- test/data/another/test.txt
|
72
|
+
- test/data/some/deep/.bash_profile
|
73
|
+
- test/data/some/deep/directory/fstab
|
74
|
+
- test/data/some/deep/directory/test.conf
|
75
|
+
- test/data/some/deep/nginx.conf
|
76
|
+
- test/data/some/test_file.txt
|
77
|
+
- test/data/testing.txt
|
52
78
|
- test/helper.rb
|
79
|
+
- test/repos/.gitignore
|
53
80
|
- test/test_gitback.rb
|
54
81
|
has_rdoc: true
|
55
82
|
homepage: http://github.com/brycethornton/gitback
|
@@ -61,23 +88,27 @@ rdoc_options:
|
|
61
88
|
require_paths:
|
62
89
|
- lib
|
63
90
|
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
none: false
|
64
92
|
requirements:
|
65
93
|
- - ">="
|
66
94
|
- !ruby/object:Gem::Version
|
95
|
+
hash: 3
|
67
96
|
segments:
|
68
97
|
- 0
|
69
98
|
version: "0"
|
70
99
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
100
|
+
none: false
|
71
101
|
requirements:
|
72
102
|
- - ">="
|
73
103
|
- !ruby/object:Gem::Version
|
104
|
+
hash: 3
|
74
105
|
segments:
|
75
106
|
- 0
|
76
107
|
version: "0"
|
77
108
|
requirements: []
|
78
109
|
|
79
110
|
rubyforge_project:
|
80
|
-
rubygems_version: 1.3.
|
111
|
+
rubygems_version: 1.3.7
|
81
112
|
signing_key:
|
82
113
|
specification_version: 3
|
83
114
|
summary: A simple ruby library for backing up files to git
|