s3backup 0.8.6 → 0.8.7
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/{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
|