encbs 0.2.1.beta1 → 0.2.1.beta2
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 +4 -4
- data/VERSION +1 -1
- data/encbs.gemspec +8 -8
- data/lib/backup/file_item/base.rb +2 -2
- data/lib/backup/file_item/local.rb +7 -3
- data/lib/backup/jar.rb +4 -2
- data/lib/helpers.rb +1 -1
- data/test/test_backup.rb +45 -19
- metadata +75 -80
data/Gemfile
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
gem "fog"
|
3
|
+
gem "fog", :git => "git://github.com/TimothyKlim/fog.git"
|
4
4
|
gem "slop"
|
5
5
|
gem "ruby-progressbar"
|
6
6
|
gem "lzoruby"
|
7
7
|
|
8
8
|
group :development do
|
9
9
|
gem "rake", "0.8.4"
|
10
|
-
gem "bundler", "
|
11
|
-
gem "jeweler", "
|
10
|
+
gem "bundler", ">= 1.0.0"
|
11
|
+
gem "jeweler", ">= 1.6.0"
|
12
12
|
gem "rcov", ">= 0"
|
13
|
-
end
|
13
|
+
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.1.
|
1
|
+
0.2.1.beta2
|
data/encbs.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{encbs}
|
8
|
-
s.version = "0.2.1.
|
8
|
+
s.version = "0.2.1.beta2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new("> 1.3.1") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Timothy Klim"]
|
12
|
-
s.date = %q{2011-
|
12
|
+
s.date = %q{2011-06-03}
|
13
13
|
s.default_executable = %q{encbs}
|
14
14
|
s.description = %q{Simple backup system for pushing into cloud}
|
15
15
|
s.email = %q{klimtimothy@gmail.com}
|
@@ -61,8 +61,8 @@ Gem::Specification.new do |s|
|
|
61
61
|
s.add_runtime_dependency(%q<ruby-progressbar>, [">= 0"])
|
62
62
|
s.add_runtime_dependency(%q<lzoruby>, [">= 0"])
|
63
63
|
s.add_development_dependency(%q<rake>, ["= 0.8.4"])
|
64
|
-
s.add_development_dependency(%q<bundler>, ["
|
65
|
-
s.add_development_dependency(%q<jeweler>, ["
|
64
|
+
s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
|
65
|
+
s.add_development_dependency(%q<jeweler>, [">= 1.6.0"])
|
66
66
|
s.add_development_dependency(%q<rcov>, [">= 0"])
|
67
67
|
else
|
68
68
|
s.add_dependency(%q<fog>, [">= 0"])
|
@@ -70,8 +70,8 @@ Gem::Specification.new do |s|
|
|
70
70
|
s.add_dependency(%q<ruby-progressbar>, [">= 0"])
|
71
71
|
s.add_dependency(%q<lzoruby>, [">= 0"])
|
72
72
|
s.add_dependency(%q<rake>, ["= 0.8.4"])
|
73
|
-
s.add_dependency(%q<bundler>, ["
|
74
|
-
s.add_dependency(%q<jeweler>, ["
|
73
|
+
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
74
|
+
s.add_dependency(%q<jeweler>, [">= 1.6.0"])
|
75
75
|
s.add_dependency(%q<rcov>, [">= 0"])
|
76
76
|
end
|
77
77
|
else
|
@@ -80,8 +80,8 @@ Gem::Specification.new do |s|
|
|
80
80
|
s.add_dependency(%q<ruby-progressbar>, [">= 0"])
|
81
81
|
s.add_dependency(%q<lzoruby>, [">= 0"])
|
82
82
|
s.add_dependency(%q<rake>, ["= 0.8.4"])
|
83
|
-
s.add_dependency(%q<bundler>, ["
|
84
|
-
s.add_dependency(%q<jeweler>, ["
|
83
|
+
s.add_dependency(%q<bundler>, [">= 1.0.0"])
|
84
|
+
s.add_dependency(%q<jeweler>, [">= 1.6.0"])
|
85
85
|
s.add_dependency(%q<rcov>, [">= 0"])
|
86
86
|
end
|
87
87
|
end
|
@@ -2,7 +2,7 @@ module Backup
|
|
2
2
|
module FileItem
|
3
3
|
class Base
|
4
4
|
def semantic_path(path)
|
5
|
-
if
|
5
|
+
if File.directory? path
|
6
6
|
path += '/'
|
7
7
|
else
|
8
8
|
path
|
@@ -18,7 +18,7 @@ module Backup
|
|
18
18
|
:gid => stat.gid,
|
19
19
|
:mode => stat.mode
|
20
20
|
}
|
21
|
-
unless
|
21
|
+
unless File.directory? file
|
22
22
|
files[file][:checksum] = Digest::MD5.hexdigest File.open(file, 'rb').read
|
23
23
|
end
|
24
24
|
|
@@ -11,17 +11,21 @@ module Backup
|
|
11
11
|
|
12
12
|
def create_directory_once *directories
|
13
13
|
directories.each do |path|
|
14
|
-
FileUtils.mkdir_p(path) unless
|
14
|
+
FileUtils.mkdir_p(path) unless File.directory? path
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
def create_file_once file, data
|
19
19
|
data = data.read if data.is_a? File or data.is_a? StringIO
|
20
|
-
File.open(file,
|
20
|
+
File.open(file, 'wb') do |f|
|
21
|
+
f.puts(data)
|
22
|
+
end unless File.exists?(file)
|
21
23
|
end
|
22
24
|
|
23
25
|
def read_file file
|
24
|
-
File.open(file, 'rb')
|
26
|
+
File.open(file, 'rb') do |f|
|
27
|
+
f.read
|
28
|
+
end if File.exists? file
|
25
29
|
end
|
26
30
|
|
27
31
|
def timeout= time
|
data/lib/backup/jar.rb
CHANGED
@@ -80,7 +80,7 @@ module Backup
|
|
80
80
|
begin
|
81
81
|
@local_files.keys.each do |file|
|
82
82
|
if @meta_index[file].nil?
|
83
|
-
unless
|
83
|
+
unless File.directory? file
|
84
84
|
data = StringIO.new File.open(file, 'rb').read
|
85
85
|
checksum = Digest::MD5.hexdigest(data.read)
|
86
86
|
|
@@ -132,12 +132,14 @@ module Backup
|
|
132
132
|
end
|
133
133
|
end
|
134
134
|
end
|
135
|
+
|
136
|
+
@timestamp
|
135
137
|
end
|
136
138
|
|
137
139
|
def hash_local_files
|
138
140
|
files = {}
|
139
141
|
|
140
|
-
if
|
142
|
+
if File.directory? @local_path
|
141
143
|
matches = Dir.glob(File.join(@local_path, "/**/*"), File::FNM_DOTMATCH)
|
142
144
|
|
143
145
|
matches = matches.select do |match|
|
data/lib/helpers.rb
CHANGED
data/test/test_backup.rb
CHANGED
@@ -1,35 +1,61 @@
|
|
1
1
|
require File.expand_path("../helper.rb", __FILE__)
|
2
2
|
|
3
3
|
class TestBackup < Test::Unit::TestCase
|
4
|
-
|
4
|
+
def setup
|
5
|
+
@backups_path = File.expand_path("../fixtures/backups", __FILE__)
|
6
|
+
|
7
|
+
FileUtils.rm_r @backups_path, :force => true
|
8
|
+
FileUtils.mkdir_p @backups_path
|
9
|
+
|
10
|
+
@hostname = Socket.gethostname
|
11
|
+
|
5
12
|
@backup = Backup::Instance.new(
|
6
|
-
|
13
|
+
@backups_path,
|
7
14
|
false
|
8
15
|
)
|
9
16
|
end
|
10
|
-
|
17
|
+
|
11
18
|
def test_backup_attributes
|
12
|
-
hostname = Socket.gethostname
|
13
|
-
file = File.expand_path("../fixtures/backups", __FILE__)
|
14
|
-
|
15
19
|
assert_equal(
|
16
20
|
@backup.root_path,
|
17
|
-
"#{
|
21
|
+
"#{@backups_path}/#{@hostname}"
|
18
22
|
)
|
19
|
-
assert_equal @backup.hostname,
|
23
|
+
assert_equal @backup.hostname, @hostname
|
20
24
|
assert_equal @backup.file_item.class, Backup::FileItem::Local
|
21
25
|
assert_not_nil @backup.timestamp
|
22
26
|
end
|
23
|
-
|
27
|
+
|
24
28
|
def test_create
|
29
|
+
local_path = File.expand_path('../fixtures/etc', __FILE__)
|
30
|
+
local_path_hash = Digest::MD5.hexdigest local_path
|
31
|
+
|
32
|
+
timestamp = @backup.create! local_path, false, false
|
33
|
+
back_path = "#{@backups_path}/#{@hostname}"
|
34
|
+
|
35
|
+
assert File.exists?("#{back_path}")
|
36
|
+
assert File.exists?("#{back_path}/meta")
|
37
|
+
assert File.exists?("#{back_path}/meta/#{local_path_hash}")
|
38
|
+
assert File.exists?("#{back_path}/meta/#{local_path_hash}/#{timestamp}.yml")
|
39
|
+
assert File.exists?("#{back_path}/meta/jars")
|
40
|
+
assert File.exists?("#{back_path}/meta/jars/#{local_path_hash}")
|
41
|
+
assert File.exists?("#{back_path}/#{local_path_hash}")
|
42
|
+
|
43
|
+
assert_equal "#{local_path}/", open("#{back_path}/meta/jars/#{local_path_hash}").read.chomp
|
44
|
+
meta_index = YAML::load open("#{back_path}/meta/#{local_path_hash}/#{timestamp}.yml").read
|
45
|
+
assert meta_index.has_key? local_path
|
46
|
+
|
47
|
+
root_file = File.expand_path '../fixtures/etc/root/file', __FILE__
|
48
|
+
assert_equal open(root_file).read, open(
|
49
|
+
"#{back_path}/#{local_path_hash}/#{timestamp}/#{Digest::MD5.hexdigest root_file}"
|
50
|
+
).read
|
25
51
|
end
|
26
|
-
|
27
|
-
def test_show_jars
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_jar_versions
|
31
|
-
end
|
32
|
-
|
33
|
-
def test_restore
|
34
|
-
end
|
35
|
-
end
|
52
|
+
|
53
|
+
#def test_show_jars
|
54
|
+
#end
|
55
|
+
|
56
|
+
#def test_jar_versions
|
57
|
+
#end
|
58
|
+
|
59
|
+
#def test_restore
|
60
|
+
#end
|
61
|
+
end
|
metadata
CHANGED
@@ -1,116 +1,114 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: encbs
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.2.1.beta2
|
4
5
|
prerelease: 6
|
5
|
-
version: 0.2.1.beta1
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Timothy Klim
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
date: 2011-05-24 00:00:00 +04:00
|
12
|
+
date: 2011-06-03 00:00:00.000000000 +04:00
|
14
13
|
default_executable: encbs
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
14
|
+
dependencies:
|
15
|
+
- !ruby/object:Gem::Dependency
|
17
16
|
name: fog
|
18
|
-
requirement: &
|
17
|
+
requirement: &2159701080 !ruby/object:Gem::Requirement
|
19
18
|
none: false
|
20
|
-
requirements:
|
21
|
-
- -
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version:
|
19
|
+
requirements:
|
20
|
+
- - ! '>='
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0'
|
24
23
|
type: :runtime
|
25
24
|
prerelease: false
|
26
|
-
version_requirements: *
|
27
|
-
- !ruby/object:Gem::Dependency
|
25
|
+
version_requirements: *2159701080
|
26
|
+
- !ruby/object:Gem::Dependency
|
28
27
|
name: slop
|
29
|
-
requirement: &
|
28
|
+
requirement: &2159700480 !ruby/object:Gem::Requirement
|
30
29
|
none: false
|
31
|
-
requirements:
|
32
|
-
- -
|
33
|
-
- !ruby/object:Gem::Version
|
34
|
-
version:
|
30
|
+
requirements:
|
31
|
+
- - ! '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
35
34
|
type: :runtime
|
36
35
|
prerelease: false
|
37
|
-
version_requirements: *
|
38
|
-
- !ruby/object:Gem::Dependency
|
36
|
+
version_requirements: *2159700480
|
37
|
+
- !ruby/object:Gem::Dependency
|
39
38
|
name: ruby-progressbar
|
40
|
-
requirement: &
|
39
|
+
requirement: &2159699880 !ruby/object:Gem::Requirement
|
41
40
|
none: false
|
42
|
-
requirements:
|
43
|
-
- -
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
version:
|
41
|
+
requirements:
|
42
|
+
- - ! '>='
|
43
|
+
- !ruby/object:Gem::Version
|
44
|
+
version: '0'
|
46
45
|
type: :runtime
|
47
46
|
prerelease: false
|
48
|
-
version_requirements: *
|
49
|
-
- !ruby/object:Gem::Dependency
|
47
|
+
version_requirements: *2159699880
|
48
|
+
- !ruby/object:Gem::Dependency
|
50
49
|
name: lzoruby
|
51
|
-
requirement: &
|
50
|
+
requirement: &2159699300 !ruby/object:Gem::Requirement
|
52
51
|
none: false
|
53
|
-
requirements:
|
54
|
-
- -
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
version:
|
52
|
+
requirements:
|
53
|
+
- - ! '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0'
|
57
56
|
type: :runtime
|
58
57
|
prerelease: false
|
59
|
-
version_requirements: *
|
60
|
-
- !ruby/object:Gem::Dependency
|
58
|
+
version_requirements: *2159699300
|
59
|
+
- !ruby/object:Gem::Dependency
|
61
60
|
name: rake
|
62
|
-
requirement: &
|
61
|
+
requirement: &2159698720 !ruby/object:Gem::Requirement
|
63
62
|
none: false
|
64
|
-
requirements:
|
65
|
-
- -
|
66
|
-
- !ruby/object:Gem::Version
|
63
|
+
requirements:
|
64
|
+
- - =
|
65
|
+
- !ruby/object:Gem::Version
|
67
66
|
version: 0.8.4
|
68
67
|
type: :development
|
69
68
|
prerelease: false
|
70
|
-
version_requirements: *
|
71
|
-
- !ruby/object:Gem::Dependency
|
69
|
+
version_requirements: *2159698720
|
70
|
+
- !ruby/object:Gem::Dependency
|
72
71
|
name: bundler
|
73
|
-
requirement: &
|
72
|
+
requirement: &2159698140 !ruby/object:Gem::Requirement
|
74
73
|
none: false
|
75
|
-
requirements:
|
76
|
-
- -
|
77
|
-
- !ruby/object:Gem::Version
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
78
77
|
version: 1.0.0
|
79
78
|
type: :development
|
80
79
|
prerelease: false
|
81
|
-
version_requirements: *
|
82
|
-
- !ruby/object:Gem::Dependency
|
80
|
+
version_requirements: *2159698140
|
81
|
+
- !ruby/object:Gem::Dependency
|
83
82
|
name: jeweler
|
84
|
-
requirement: &
|
83
|
+
requirement: &2159697600 !ruby/object:Gem::Requirement
|
85
84
|
none: false
|
86
|
-
requirements:
|
87
|
-
- -
|
88
|
-
- !ruby/object:Gem::Version
|
85
|
+
requirements:
|
86
|
+
- - ! '>='
|
87
|
+
- !ruby/object:Gem::Version
|
89
88
|
version: 1.6.0
|
90
89
|
type: :development
|
91
90
|
prerelease: false
|
92
|
-
version_requirements: *
|
93
|
-
- !ruby/object:Gem::Dependency
|
91
|
+
version_requirements: *2159697600
|
92
|
+
- !ruby/object:Gem::Dependency
|
94
93
|
name: rcov
|
95
|
-
requirement: &
|
94
|
+
requirement: &2159697080 !ruby/object:Gem::Requirement
|
96
95
|
none: false
|
97
|
-
requirements:
|
98
|
-
- -
|
99
|
-
- !ruby/object:Gem::Version
|
100
|
-
version:
|
96
|
+
requirements:
|
97
|
+
- - ! '>='
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
101
100
|
type: :development
|
102
101
|
prerelease: false
|
103
|
-
version_requirements: *
|
102
|
+
version_requirements: *2159697080
|
104
103
|
description: Simple backup system for pushing into cloud
|
105
104
|
email: klimtimothy@gmail.com
|
106
|
-
executables:
|
105
|
+
executables:
|
107
106
|
- encbs
|
108
107
|
extensions: []
|
109
|
-
|
110
|
-
extra_rdoc_files:
|
108
|
+
extra_rdoc_files:
|
111
109
|
- LICENSE.txt
|
112
110
|
- README.rdoc
|
113
|
-
files:
|
111
|
+
files:
|
114
112
|
- Gemfile
|
115
113
|
- LICENSE.txt
|
116
114
|
- README.rdoc
|
@@ -139,34 +137,31 @@ files:
|
|
139
137
|
- test/test_jar.rb
|
140
138
|
has_rdoc: true
|
141
139
|
homepage: http://github.com/TimothyKlim/encbs
|
142
|
-
licenses:
|
140
|
+
licenses:
|
143
141
|
- MIT
|
144
142
|
post_install_message:
|
145
143
|
rdoc_options: []
|
146
|
-
|
147
|
-
require_paths:
|
144
|
+
require_paths:
|
148
145
|
- lib
|
149
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
146
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
150
147
|
none: false
|
151
|
-
requirements:
|
152
|
-
- -
|
153
|
-
- !ruby/object:Gem::Version
|
154
|
-
|
155
|
-
segments:
|
148
|
+
requirements:
|
149
|
+
- - ! '>='
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
version: '0'
|
152
|
+
segments:
|
156
153
|
- 0
|
157
|
-
|
158
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
154
|
+
hash: -2054393209983335340
|
155
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
159
156
|
none: false
|
160
|
-
requirements:
|
161
|
-
- -
|
162
|
-
- !ruby/object:Gem::Version
|
157
|
+
requirements:
|
158
|
+
- - ! '>'
|
159
|
+
- !ruby/object:Gem::Version
|
163
160
|
version: 1.3.1
|
164
161
|
requirements: []
|
165
|
-
|
166
162
|
rubyforge_project:
|
167
163
|
rubygems_version: 1.6.2
|
168
164
|
signing_key:
|
169
165
|
specification_version: 3
|
170
166
|
summary: Simple backup system for pushing into cloud
|
171
167
|
test_files: []
|
172
|
-
|