s3backup 0.8.6 → 0.8.7
Sign up to get free protection for your applications and to get access to all the features.
- data/{History.txt → ChangeLog} +72 -68
- data/Gemfile +14 -0
- data/LICENSE.txt +20 -0
- data/Rakefile +49 -26
- data/VERSION +1 -0
- data/bin/s3backup +1 -2
- data/lib/s3backup.rb +9 -3
- data/lib/s3backup/backup.rb +0 -3
- data/lib/s3backup/cli.rb +1 -4
- data/lib/s3backup/manager.rb +1 -4
- data/lib/s3backup/restore.rb +0 -3
- data/lib/s3backup/tree_info.rb +15 -15
- data/s3backup.gemspec +74 -0
- metadata +103 -98
- data/Manifest.txt +0 -24
- data/PostInstall.txt +0 -7
- data/script/console +0 -10
- data/script/destroy +0 -14
- data/script/generate +0 -14
- data/spec/s3backup_cli_spec.rb +0 -15
- data/spec/s3backup_spec.rb +0 -11
- data/spec/spec.opts +0 -1
- data/spec/spec_helper.rb +0 -10
- data/tasks/rspec.rake +0 -21
data/{History.txt → ChangeLog}
RENAMED
@@ -1,68 +1,72 @@
|
|
1
|
-
=== 0.
|
2
|
-
|
3
|
-
*
|
4
|
-
|
5
|
-
=== 0.6
|
6
|
-
*
|
7
|
-
*
|
8
|
-
|
9
|
-
=== 0.
|
10
|
-
* mod bug if
|
11
|
-
*
|
12
|
-
|
13
|
-
=== 0.
|
14
|
-
*
|
15
|
-
*
|
16
|
-
|
17
|
-
|
18
|
-
*
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
*
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
*
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
*
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
*
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
*
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
*
|
57
|
-
|
58
|
-
|
59
|
-
* mod bug if directory name
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
*
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
*
|
68
|
-
|
1
|
+
=== 0.8.7 2011-12-30
|
2
|
+
* Jeweler
|
3
|
+
* Time object store integer in sqlite3 because time object couldn't store.
|
4
|
+
|
5
|
+
=== 0.8.6 2010-02-17
|
6
|
+
* add GC.start each directory send.
|
7
|
+
* change resume timing to each 10 send times. before each 10 directory
|
8
|
+
|
9
|
+
=== 0.8.5 2010-02-15
|
10
|
+
* mod bug if symbolic link was differed before, backup is failed.
|
11
|
+
* tar command output information level.
|
12
|
+
|
13
|
+
=== 0.8.4 2010-02-13
|
14
|
+
* mod bug if directory name is so long,backup is failed.
|
15
|
+
* mod bug temporary file was remained.
|
16
|
+
|
17
|
+
=== 0.8.3 2010-02-12
|
18
|
+
* change dependency gem sqlite3 to sqlite3-ruby
|
19
|
+
|
20
|
+
=== 0.8.2 2010-02-11
|
21
|
+
* remove dependency sqlite3 from Rakefile. for that reazon you should install sqlite3 manually.
|
22
|
+
gem install sqlite3
|
23
|
+
|
24
|
+
=== 0.8.1 2010-02-11
|
25
|
+
* mod bug if directory name is same , that can't restore(because it was not backuped).
|
26
|
+
* change memory to sqlite3.
|
27
|
+
* add config temporary. temporary is directory for temporary file
|
28
|
+
* resume is mandatory.
|
29
|
+
|
30
|
+
=== 0.7.2 2010-01-29
|
31
|
+
* mod bug if directory name is started '-'
|
32
|
+
* dereese use memory
|
33
|
+
|
34
|
+
=== 0.7.01 2010-01-27
|
35
|
+
* mod bug if passward is not set. very sorry.
|
36
|
+
* change resume function default off. because use huge memory.
|
37
|
+
* default max_retry_count 20 to 30 because resume function change off.
|
38
|
+
|
39
|
+
=== 0.6.10 2010-01-25
|
40
|
+
* mod bug if directory name has '#'
|
41
|
+
|
42
|
+
=== 0.6.9 2010-01-20
|
43
|
+
* modify problem for backup taget is huge,memory is burned out
|
44
|
+
* default max_retry_count 10 to 20
|
45
|
+
|
46
|
+
=== 0.6.8 2010-01-19
|
47
|
+
* default log level debug to info
|
48
|
+
|
49
|
+
=== 0.6.7 2010-01-19
|
50
|
+
* default max_retry_count 6 to 10
|
51
|
+
* add config log_level
|
52
|
+
|
53
|
+
=== 0.6.6 2010-01-19
|
54
|
+
* add config max_retry_count
|
55
|
+
* if ocurred "Connection reset by peer",retry max_retry_count times. default 6 waiting (30*try_count) second next post.
|
56
|
+
* show http://scie.nti.st/2008/3/14/amazon-s3-and-connection-reset-by-peer
|
57
|
+
* don't use raise,change exit and error log
|
58
|
+
* config BUFESIZE to buffer_size
|
59
|
+
* mod bug if directory name has '\'
|
60
|
+
|
61
|
+
=== 0.6.4 2010-01-18
|
62
|
+
* mod bug if directory name has non english and shell special char
|
63
|
+
* retry 5 times if data post fails.
|
64
|
+
|
65
|
+
=== 0.6.3 2010-01-16
|
66
|
+
* mod Access Error if the bucket was not found
|
67
|
+
* mod bug if directory name has white space
|
68
|
+
|
69
|
+
=== 0.0.1 2009-10-21
|
70
|
+
|
71
|
+
* 1 major enhancement:
|
72
|
+
* Initial release
|
data/Gemfile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
source "http://rubygems.org"
|
2
|
+
# Add dependencies required to use your gem here.
|
3
|
+
# Example:
|
4
|
+
# gem "activesupport", ">= 2.3.5"
|
5
|
+
gem "aws-s3"
|
6
|
+
gem "sqlite3-ruby"
|
7
|
+
# Add dependencies to develop your gem here.
|
8
|
+
# Include everything needed to run rake, tests, features, etc.
|
9
|
+
group :development do
|
10
|
+
gem "rspec", "~> 2.3.0"
|
11
|
+
gem "bundler", "~> 1.0.0"
|
12
|
+
gem "jeweler", "~> 1.6.4"
|
13
|
+
gem "rcov", ">= 0"
|
14
|
+
end
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2011 Takeshi Morita
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/Rakefile
CHANGED
@@ -1,26 +1,49 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require '
|
4
|
-
require '
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
#
|
25
|
-
|
26
|
-
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'rubygems'
|
4
|
+
require 'bundler'
|
5
|
+
begin
|
6
|
+
Bundler.setup(:default, :development)
|
7
|
+
rescue Bundler::BundlerError => e
|
8
|
+
$stderr.puts e.message
|
9
|
+
$stderr.puts "Run `bundle install` to install missing gems"
|
10
|
+
exit e.status_code
|
11
|
+
end
|
12
|
+
require 'rake'
|
13
|
+
|
14
|
+
require 'jeweler'
|
15
|
+
Jeweler::Tasks.new do |gem|
|
16
|
+
# gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
|
17
|
+
gem.name = "s3backup"
|
18
|
+
gem.homepage = "http://github.com/takeshy/s3backup"
|
19
|
+
gem.license = "MIT"
|
20
|
+
gem.summary = %Q{backup tool to Amazon S3 with compressed.}
|
21
|
+
gem.description = %Q{backup tool to Amazon S3 with compressed and crypt.}
|
22
|
+
gem.email = "laten@nifty.com"
|
23
|
+
gem.authors = ["Takeshi Morita"]
|
24
|
+
# dependencies defined in Gemfile
|
25
|
+
end
|
26
|
+
Jeweler::RubygemsDotOrgTasks.new
|
27
|
+
|
28
|
+
require 'rspec/core'
|
29
|
+
require 'rspec/core/rake_task'
|
30
|
+
RSpec::Core::RakeTask.new(:spec) do |spec|
|
31
|
+
spec.pattern = FileList['spec/**/*_spec.rb']
|
32
|
+
end
|
33
|
+
|
34
|
+
RSpec::Core::RakeTask.new(:rcov) do |spec|
|
35
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
36
|
+
spec.rcov = true
|
37
|
+
end
|
38
|
+
|
39
|
+
task :default => :spec
|
40
|
+
|
41
|
+
require 'rake/rdoctask'
|
42
|
+
Rake::RDocTask.new do |rdoc|
|
43
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
44
|
+
|
45
|
+
rdoc.rdoc_dir = 'rdoc'
|
46
|
+
rdoc.title = "s3backup #{version}"
|
47
|
+
rdoc.rdoc_files.include('README*')
|
48
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
49
|
+
end
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
0.8.7
|
data/bin/s3backup
CHANGED
data/lib/s3backup.rb
CHANGED
@@ -1,5 +1,11 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require 's3backup/backup'
|
2
|
+
require 's3backup/cli'
|
3
|
+
require 's3backup/crypt'
|
4
|
+
require 's3backup/manager'
|
5
|
+
require 's3backup/restore'
|
6
|
+
require 's3backup/restore'
|
7
|
+
require 's3backup/s3log'
|
8
|
+
require 's3backup/s3wrapper'
|
9
|
+
require 's3backup/tree_info'
|
3
10
|
module S3backup
|
4
|
-
VERSION = '0.8.6'
|
5
11
|
end
|
data/lib/s3backup/backup.rb
CHANGED
data/lib/s3backup/cli.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
require 'optparse'
|
2
2
|
require 'yaml'
|
3
|
-
require 's3backup/s3log'
|
4
|
-
|
5
3
|
module S3backup
|
6
4
|
class CLI
|
7
5
|
DEFAULT_CONFIG='./backup.yml'
|
@@ -52,7 +50,7 @@ module S3backup
|
|
52
50
|
S3log.set_logfile(File.open(options[:log],"a"))
|
53
51
|
end
|
54
52
|
if options[:restore]
|
55
|
-
|
53
|
+
FileUtils.mkdir_p(options[:output_dir])
|
56
54
|
if !File.directory?(options[:output_dir])
|
57
55
|
S3log.error("output directory #{options[:output_dir]} is not exist.")
|
58
56
|
exit(-1)
|
@@ -60,7 +58,6 @@ module S3backup
|
|
60
58
|
rt = Restore.new(options[:output_dir],YAML.load_file(options[:config_file]))
|
61
59
|
rt.start
|
62
60
|
else
|
63
|
-
require 's3backup/backup'
|
64
61
|
bk = Backup.new(YAML.load_file(options[:config_file]))
|
65
62
|
bk.start
|
66
63
|
end
|
data/lib/s3backup/manager.rb
CHANGED
@@ -1,9 +1,6 @@
|
|
1
1
|
require 'cgi'
|
2
2
|
require 'time'
|
3
3
|
require 'fileutils'
|
4
|
-
require 's3backup/s3log'
|
5
|
-
require 's3backup/tree_info'
|
6
|
-
require 's3backup/crypt'
|
7
4
|
module S3backup
|
8
5
|
class Manager
|
9
6
|
DEFAULT_BUF_READ_SIZE=1024*1024*32
|
@@ -292,7 +289,7 @@ module S3backup
|
|
292
289
|
dir_len = k.length
|
293
290
|
relative_path = k.slice(top_dir_len,dir_len - top_dir_len)
|
294
291
|
dir = output_dir + relative_path
|
295
|
-
File.utime(now,Time.
|
292
|
+
File.utime(now,Time.at(v[:mtime]),dir)
|
296
293
|
end
|
297
294
|
}
|
298
295
|
end
|
data/lib/s3backup/restore.rb
CHANGED
data/lib/s3backup/tree_info.rb
CHANGED
@@ -29,7 +29,7 @@ module S3backup
|
|
29
29
|
name = row[1]
|
30
30
|
if File.basename(name) == File.basename(p_name)
|
31
31
|
sql = "insert into file(name,size,mtime,directory_id) values (:name, :size, :mtime,:directory_id)"
|
32
|
-
@db.execute(sql,:name=>"
|
32
|
+
@db.execute(sql,:name=>"absolutely_no_exist_file_name#{id}",:size=>0,:mtime =>0,:directory_id=>p_id)
|
33
33
|
end
|
34
34
|
check_dirs(id,name)
|
35
35
|
end
|
@@ -38,7 +38,7 @@ module S3backup
|
|
38
38
|
file_map[:directory].keys().sort{|a,b| a<=>b}.each do |key|
|
39
39
|
file_at = file_map[:directory][key]
|
40
40
|
sql = "insert into directory(name,mtime) values (:name, :mtime)"
|
41
|
-
@db.execute(sql,:name=>key,:mtime => file_at[:mtime] )
|
41
|
+
@db.execute(sql,:name=>key,:mtime => file_at[:mtime].to_i )
|
42
42
|
end
|
43
43
|
@db.execute('select id,name from directory' ) do |row|
|
44
44
|
dir_id = row[0].to_i
|
@@ -66,7 +66,7 @@ module S3backup
|
|
66
66
|
next
|
67
67
|
end
|
68
68
|
sql = "insert into file(name,size,mtime,directory_id) values (:name, :size, :mtime,:directory_id)"
|
69
|
-
@db.execute(sql,:name=>key,:size=>file_at[:size],:mtime => file_at[:date], :directory_id=>dir_id)
|
69
|
+
@db.execute(sql,:name=>key,:size=>file_at[:size],:mtime => file_at[:date].to_i, :directory_id=>dir_id)
|
70
70
|
end
|
71
71
|
file_map[:symlink].each do |key,val|
|
72
72
|
file_at = file_map[:symlink][key]
|
@@ -94,7 +94,7 @@ module S3backup
|
|
94
94
|
make_table
|
95
95
|
stat = File.stat(opt[:directory])
|
96
96
|
sql = "insert into directory(name,mtime) values (:name, :mtime)"
|
97
|
-
@db.execute(sql,:name=>opt[:directory],:mtime =>stat.mtime)
|
97
|
+
@db.execute(sql,:name=>opt[:directory],:mtime =>stat.mtime.to_i)
|
98
98
|
dir_id = nil
|
99
99
|
@db.execute('select id from directory where name=?',opt[:directory]) do |row|
|
100
100
|
#rowは結果の配列
|
@@ -115,7 +115,7 @@ module S3backup
|
|
115
115
|
if File.directory?(name)
|
116
116
|
stat = File.stat(name)
|
117
117
|
sql = "insert into directory(name,mtime,parent_directory_id) values (:name, :mtime,:parent_directory_id)"
|
118
|
-
@db.execute(sql,:name=>name,:mtime =>stat.mtime,:parent_directory_id=>id)
|
118
|
+
@db.execute(sql,:name=>name,:mtime =>stat.mtime.to_i,:parent_directory_id=>id)
|
119
119
|
dir_id = nil
|
120
120
|
@db.execute('select id from directory where name=?',name) do |row|
|
121
121
|
#rowは結果の配列
|
@@ -128,7 +128,7 @@ module S3backup
|
|
128
128
|
else
|
129
129
|
stat = File.stat(name)
|
130
130
|
sql = "insert into file(name,size,mtime,directory_id) values (:name, :size, :mtime,:directory_id)"
|
131
|
-
@db.execute(sql,:name=>name,:size=>stat.size,:mtime => stat.mtime, :directory_id=>id)
|
131
|
+
@db.execute(sql,:name=>name,:size=>stat.size,:mtime => stat.mtime.to_i, :directory_id=>id)
|
132
132
|
end
|
133
133
|
end
|
134
134
|
end
|
@@ -145,16 +145,16 @@ module S3backup
|
|
145
145
|
@db.execute("delete from symlink where directory_id = #{id}")
|
146
146
|
|
147
147
|
@db.execute("update directory set mtime = ?,parent_directory_id = ?" +
|
148
|
-
" where id = ?",dir_info[:mtime],p_id,id)
|
148
|
+
" where id = ?",dir_info[:mtime].to_i,p_id,id)
|
149
149
|
else
|
150
150
|
@db.execute("insert into directory(name,mtime,parent_directory_id) values(?,?,?)",
|
151
|
-
dir_info[:name],dir_info[:mtime],p_id)
|
151
|
+
dir_info[:name],dir_info[:mtime].to_i,p_id)
|
152
152
|
result = @db.execute("select id from directory where name = ?",dir_info[:name])
|
153
153
|
id = result[0][0]
|
154
154
|
end
|
155
155
|
dir_info[:files].each do |f|
|
156
156
|
@db.execute("insert into file(name,mtime,size,directory_id) values(?,?,?,?)",
|
157
|
-
f[:name],f[:mtime],f[:size],id)
|
157
|
+
f[:name],f[:mtime].to_i,f[:size],id)
|
158
158
|
end
|
159
159
|
dir_info[:links].each do |f|
|
160
160
|
@db.execute("insert into symlink(name,source,directory_id) values(?,?,?)",f[:name],f[:source],id)
|
@@ -164,9 +164,9 @@ module S3backup
|
|
164
164
|
@db.execute('select id,name,mtime from directory where parent_directory_id = ?',p_id) do |row|
|
165
165
|
id = row[0]
|
166
166
|
name = row[1]
|
167
|
-
mtime = row[2]
|
167
|
+
mtime = row[2].to_i
|
168
168
|
tree[level] = {} unless tree[level]
|
169
|
-
tree[level][name] = {:mtime=>mtime}
|
169
|
+
tree[level][name] = {:mtime=>mtime.to_i}
|
170
170
|
get_level_directory(tree,id,level+1)
|
171
171
|
end
|
172
172
|
end
|
@@ -179,7 +179,7 @@ module S3backup
|
|
179
179
|
end
|
180
180
|
id = result[0][0]
|
181
181
|
name = result[0][1]
|
182
|
-
mtime = result[0][2]
|
182
|
+
mtime = result[0][2].to_i
|
183
183
|
tree[0] = {}
|
184
184
|
tree[0][name]={:mtime=>mtime}
|
185
185
|
get_level_directory(tree,id,1)
|
@@ -192,7 +192,7 @@ module S3backup
|
|
192
192
|
break if result.length == 0
|
193
193
|
now_id = result[0][0].to_i
|
194
194
|
name = result[0][1]
|
195
|
-
mtime = result[0][2]
|
195
|
+
mtime = result[0][2].to_i
|
196
196
|
files = []
|
197
197
|
links = []
|
198
198
|
t_result = target.db.execute("select id,name from directory where name = ?",name)
|
@@ -210,13 +210,13 @@ module S3backup
|
|
210
210
|
end
|
211
211
|
file_infos = []
|
212
212
|
files.each do |f|
|
213
|
-
file_infos.push({:name=>f[0],:size=>f[1],:mtime=>f[2]})
|
213
|
+
file_infos.push({:name=>f[0],:size=>f[1],:mtime=>f[2].to_i})
|
214
214
|
end
|
215
215
|
sym_infos = []
|
216
216
|
links.each do |l|
|
217
217
|
sym_infos.push({:name=>l[0],:source=>l[1]})
|
218
218
|
end
|
219
|
-
yield({:name => name,:mtime=>mtime,:files => file_infos ,:links => sym_infos})
|
219
|
+
yield({:name => name,:mtime=>mtime.to_i,:files => file_infos ,:links => sym_infos})
|
220
220
|
end
|
221
221
|
end
|
222
222
|
def remove(target)
|
data/s3backup.gemspec
ADDED
@@ -0,0 +1,74 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "s3backup"
|
8
|
+
s.version = "0.8.7"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["Takeshi Morita"]
|
12
|
+
s.date = "2011-12-30"
|
13
|
+
s.description = "backup tool to Amazon S3 with compressed and crypt."
|
14
|
+
s.email = "laten@nifty.com"
|
15
|
+
s.executables = ["s3backup"]
|
16
|
+
s.extra_rdoc_files = [
|
17
|
+
"ChangeLog",
|
18
|
+
"LICENSE.txt",
|
19
|
+
"README.rdoc"
|
20
|
+
]
|
21
|
+
s.files = [
|
22
|
+
"ChangeLog",
|
23
|
+
"Gemfile",
|
24
|
+
"LICENSE.txt",
|
25
|
+
"README.rdoc",
|
26
|
+
"Rakefile",
|
27
|
+
"VERSION",
|
28
|
+
"backup.yml",
|
29
|
+
"bin/s3backup",
|
30
|
+
"lib/s3backup.rb",
|
31
|
+
"lib/s3backup/backup.rb",
|
32
|
+
"lib/s3backup/cli.rb",
|
33
|
+
"lib/s3backup/crypt.rb",
|
34
|
+
"lib/s3backup/manager.rb",
|
35
|
+
"lib/s3backup/restore.rb",
|
36
|
+
"lib/s3backup/s3log.rb",
|
37
|
+
"lib/s3backup/s3wrapper.rb",
|
38
|
+
"lib/s3backup/tree_info.rb",
|
39
|
+
"s3backup.gemspec"
|
40
|
+
]
|
41
|
+
s.homepage = "http://github.com/takeshy/s3backup"
|
42
|
+
s.licenses = ["MIT"]
|
43
|
+
s.require_paths = ["lib"]
|
44
|
+
s.rubygems_version = "1.8.11"
|
45
|
+
s.summary = "backup tool to Amazon S3 with compressed."
|
46
|
+
|
47
|
+
if s.respond_to? :specification_version then
|
48
|
+
s.specification_version = 3
|
49
|
+
|
50
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
51
|
+
s.add_runtime_dependency(%q<aws-s3>, [">= 0"])
|
52
|
+
s.add_runtime_dependency(%q<sqlite3-ruby>, [">= 0"])
|
53
|
+
s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
|
54
|
+
s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
|
55
|
+
s.add_development_dependency(%q<jeweler>, ["~> 1.6.4"])
|
56
|
+
s.add_development_dependency(%q<rcov>, [">= 0"])
|
57
|
+
else
|
58
|
+
s.add_dependency(%q<aws-s3>, [">= 0"])
|
59
|
+
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
60
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
61
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
62
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
63
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
64
|
+
end
|
65
|
+
else
|
66
|
+
s.add_dependency(%q<aws-s3>, [">= 0"])
|
67
|
+
s.add_dependency(%q<sqlite3-ruby>, [">= 0"])
|
68
|
+
s.add_dependency(%q<rspec>, ["~> 2.3.0"])
|
69
|
+
s.add_dependency(%q<bundler>, ["~> 1.0.0"])
|
70
|
+
s.add_dependency(%q<jeweler>, ["~> 1.6.4"])
|
71
|
+
s.add_dependency(%q<rcov>, [">= 0"])
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
metadata
CHANGED
@@ -1,84 +1,98 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: s3backup
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.8.7
|
5
|
+
prerelease:
|
5
6
|
platform: ruby
|
6
|
-
authors:
|
7
|
+
authors:
|
7
8
|
- Takeshi Morita
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
dependencies:
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-12-30 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: aws-s3
|
16
|
+
requirement: &14516100 !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
17
22
|
type: :runtime
|
18
|
-
|
19
|
-
version_requirements:
|
20
|
-
|
21
|
-
- - ">="
|
22
|
-
- !ruby/object:Gem::Version
|
23
|
-
version: 0.6.2
|
24
|
-
version:
|
25
|
-
- !ruby/object:Gem::Dependency
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: *14516100
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
26
|
name: sqlite3-ruby
|
27
|
+
requirement: &14514160 !ruby/object:Gem::Requirement
|
28
|
+
none: false
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
27
33
|
type: :runtime
|
28
|
-
|
29
|
-
version_requirements:
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
-
|
36
|
-
|
34
|
+
prerelease: false
|
35
|
+
version_requirements: *14514160
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
requirement: &14513300 !ruby/object:Gem::Requirement
|
39
|
+
none: false
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: 2.3.0
|
37
44
|
type: :development
|
38
|
-
|
39
|
-
version_requirements:
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
-
|
46
|
-
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *14513300
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: bundler
|
49
|
+
requirement: &14512300 !ruby/object:Gem::Requirement
|
50
|
+
none: false
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.0.0
|
47
55
|
type: :development
|
48
|
-
|
49
|
-
version_requirements:
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
-
|
56
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *14512300
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: jeweler
|
60
|
+
requirement: &14527620 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ~>
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: 1.6.4
|
57
66
|
type: :development
|
58
|
-
|
59
|
-
version_requirements:
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *14527620
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rcov
|
71
|
+
requirement: &14526560 !ruby/object:Gem::Requirement
|
72
|
+
none: false
|
73
|
+
requirements:
|
74
|
+
- - ! '>='
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: '0'
|
77
|
+
type: :development
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: *14526560
|
80
|
+
description: backup tool to Amazon S3 with compressed and crypt.
|
81
|
+
email: laten@nifty.com
|
82
|
+
executables:
|
69
83
|
- s3backup
|
70
84
|
extensions: []
|
71
|
-
|
72
|
-
|
73
|
-
-
|
74
|
-
-
|
75
|
-
|
76
|
-
|
77
|
-
-
|
78
|
-
-
|
79
|
-
- PostInstall.txt
|
85
|
+
extra_rdoc_files:
|
86
|
+
- ChangeLog
|
87
|
+
- LICENSE.txt
|
88
|
+
- README.rdoc
|
89
|
+
files:
|
90
|
+
- ChangeLog
|
91
|
+
- Gemfile
|
92
|
+
- LICENSE.txt
|
80
93
|
- README.rdoc
|
81
94
|
- Rakefile
|
95
|
+
- VERSION
|
82
96
|
- backup.yml
|
83
97
|
- bin/s3backup
|
84
98
|
- lib/s3backup.rb
|
@@ -90,42 +104,33 @@ files:
|
|
90
104
|
- lib/s3backup/s3log.rb
|
91
105
|
- lib/s3backup/s3wrapper.rb
|
92
106
|
- lib/s3backup/tree_info.rb
|
93
|
-
-
|
94
|
-
|
95
|
-
|
96
|
-
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
- tasks/rspec.rake
|
101
|
-
has_rdoc: true
|
102
|
-
homepage: http://rubyforge.org/projects/s3backup/
|
103
|
-
licenses: []
|
104
|
-
|
105
|
-
post_install_message: PostInstall.txt
|
106
|
-
rdoc_options:
|
107
|
-
- --main
|
108
|
-
- README.rdoc
|
109
|
-
require_paths:
|
107
|
+
- s3backup.gemspec
|
108
|
+
homepage: http://github.com/takeshy/s3backup
|
109
|
+
licenses:
|
110
|
+
- MIT
|
111
|
+
post_install_message:
|
112
|
+
rdoc_options: []
|
113
|
+
require_paths:
|
110
114
|
- lib
|
111
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
115
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
116
|
+
none: false
|
117
|
+
requirements:
|
118
|
+
- - ! '>='
|
119
|
+
- !ruby/object:Gem::Version
|
120
|
+
version: '0'
|
121
|
+
segments:
|
122
|
+
- 0
|
123
|
+
hash: -2878226757988658176
|
124
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
|
+
none: false
|
126
|
+
requirements:
|
127
|
+
- - ! '>='
|
128
|
+
- !ruby/object:Gem::Version
|
129
|
+
version: '0'
|
123
130
|
requirements: []
|
124
|
-
|
125
|
-
|
126
|
-
rubygems_version: 1.3.5
|
131
|
+
rubyforge_project:
|
132
|
+
rubygems_version: 1.8.11
|
127
133
|
signing_key:
|
128
134
|
specification_version: 3
|
129
|
-
summary:
|
135
|
+
summary: backup tool to Amazon S3 with compressed.
|
130
136
|
test_files: []
|
131
|
-
|
data/Manifest.txt
DELETED
@@ -1,24 +0,0 @@
|
|
1
|
-
History.txt
|
2
|
-
Manifest.txt
|
3
|
-
PostInstall.txt
|
4
|
-
README.rdoc
|
5
|
-
Rakefile
|
6
|
-
backup.yml
|
7
|
-
bin/s3backup
|
8
|
-
lib/s3backup.rb
|
9
|
-
lib/s3backup/backup.rb
|
10
|
-
lib/s3backup/cli.rb
|
11
|
-
lib/s3backup/crypt.rb
|
12
|
-
lib/s3backup/manager.rb
|
13
|
-
lib/s3backup/restore.rb
|
14
|
-
lib/s3backup/s3log.rb
|
15
|
-
lib/s3backup/s3wrapper.rb
|
16
|
-
lib/s3backup/tree_info.rb
|
17
|
-
script/console
|
18
|
-
script/destroy
|
19
|
-
script/generate
|
20
|
-
spec/s3backup_cli_spec.rb
|
21
|
-
spec/s3backup_spec.rb
|
22
|
-
spec/spec.opts
|
23
|
-
spec/spec_helper.rb
|
24
|
-
tasks/rspec.rake
|
data/PostInstall.txt
DELETED
data/script/console
DELETED
@@ -1,10 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# File: script/console
|
3
|
-
irb = RUBY_PLATFORM =~ /(:?mswin|mingw)/ ? 'irb.bat' : 'irb'
|
4
|
-
|
5
|
-
libs = " -r irb/completion"
|
6
|
-
# Perhaps use a console_lib to store any extra methods I may want available in the cosole
|
7
|
-
# libs << " -r #{File.dirname(__FILE__) + '/../lib/console_lib/console_logger.rb'}"
|
8
|
-
libs << " -r #{File.dirname(__FILE__) + '/../lib/s3backup.rb'}"
|
9
|
-
puts "Loading s3backup gem"
|
10
|
-
exec "#{irb} #{libs} --simple-prompt"
|
data/script/destroy
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'rubigen'
|
6
|
-
rescue LoadError
|
7
|
-
require 'rubygems'
|
8
|
-
require 'rubigen'
|
9
|
-
end
|
10
|
-
require 'rubigen/scripts/destroy'
|
11
|
-
|
12
|
-
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
-
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
-
RubiGen::Scripts::Destroy.new.run(ARGV)
|
data/script/generate
DELETED
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
APP_ROOT = File.expand_path(File.join(File.dirname(__FILE__), '..'))
|
3
|
-
|
4
|
-
begin
|
5
|
-
require 'rubigen'
|
6
|
-
rescue LoadError
|
7
|
-
require 'rubygems'
|
8
|
-
require 'rubigen'
|
9
|
-
end
|
10
|
-
require 'rubigen/scripts/generate'
|
11
|
-
|
12
|
-
ARGV.shift if ['--help', '-h'].include?(ARGV[0])
|
13
|
-
RubiGen::Base.use_component_sources! [:rubygems, :newgem, :newgem_theme, :test_unit]
|
14
|
-
RubiGen::Scripts::Generate.new.run(ARGV)
|
data/spec/s3backup_cli_spec.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
|
2
|
-
require 's3backup/cli'
|
3
|
-
|
4
|
-
describe S3backup::CLI, "execute" do
|
5
|
-
before(:each) do
|
6
|
-
@stdout_io = StringIO.new
|
7
|
-
S3backup::CLI.execute(@stdout_io, [])
|
8
|
-
@stdout_io.rewind
|
9
|
-
@stdout = @stdout_io.read
|
10
|
-
end
|
11
|
-
|
12
|
-
it "should print default output" do
|
13
|
-
@stdout.should =~ /To update this executable/
|
14
|
-
end
|
15
|
-
end
|
data/spec/s3backup_spec.rb
DELETED
data/spec/spec.opts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--colour
|
data/spec/spec_helper.rb
DELETED
data/tasks/rspec.rake
DELETED
@@ -1,21 +0,0 @@
|
|
1
|
-
begin
|
2
|
-
require 'spec'
|
3
|
-
rescue LoadError
|
4
|
-
require 'rubygems' unless ENV['NO_RUBYGEMS']
|
5
|
-
require 'spec'
|
6
|
-
end
|
7
|
-
begin
|
8
|
-
require 'spec/rake/spectask'
|
9
|
-
rescue LoadError
|
10
|
-
puts <<-EOS
|
11
|
-
To use rspec for testing you must install rspec gem:
|
12
|
-
gem install rspec
|
13
|
-
EOS
|
14
|
-
exit(0)
|
15
|
-
end
|
16
|
-
|
17
|
-
desc "Run the specs under spec/models"
|
18
|
-
Spec::Rake::SpecTask.new do |t|
|
19
|
-
t.spec_opts = ['--options', "spec/spec.opts"]
|
20
|
-
t.spec_files = FileList['spec/**/*_spec.rb']
|
21
|
-
end
|