backup 3.0.7 → 3.0.8
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +10 -2
- data/Gemfile.lock +10 -17
- data/README.md +1 -0
- data/backup.gemspec +1 -7
- data/bin/backup +38 -0
- data/lib/backup.rb +7 -6
- data/lib/backup/dependency.rb +84 -0
- data/lib/backup/notifier/mail.rb +1 -1
- data/lib/backup/notifier/twitter.rb +1 -1
- data/lib/backup/storage/cloudfiles.rb +1 -1
- data/lib/backup/storage/dropbox.rb +1 -1
- data/lib/backup/storage/rsync.rb +1 -1
- data/lib/backup/storage/s3.rb +1 -1
- data/lib/backup/storage/scp.rb +3 -2
- data/lib/backup/storage/sftp.rb +1 -1
- data/lib/backup/version.rb +1 -1
- metadata +4 -99
data/Gemfile
CHANGED
@@ -3,8 +3,16 @@
|
|
3
3
|
source 'http://rubygems.org'
|
4
4
|
|
5
5
|
##
|
6
|
-
#
|
7
|
-
|
6
|
+
# Load Backup::Dependency
|
7
|
+
%w[cli dependency].each do |path|
|
8
|
+
require File.expand_path("../lib/backup/#{path}", __FILE__)
|
9
|
+
end
|
10
|
+
|
11
|
+
##
|
12
|
+
# Dynamically define the dependencies specified in Backup::Dependency.all
|
13
|
+
Backup::Dependency.all.each do |name, gemspec|
|
14
|
+
gem(name, gemspec[:version])
|
15
|
+
end
|
8
16
|
|
9
17
|
##
|
10
18
|
# Define gems to be used in the 'test' environment
|
data/Gemfile.lock
CHANGED
@@ -1,15 +1,3 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
backup (3.0.7)
|
5
|
-
dropbox (~> 1.2.3)
|
6
|
-
fog (~> 0.5.3)
|
7
|
-
mail (~> 2.2.15)
|
8
|
-
net-scp (~> 1.0.4)
|
9
|
-
net-sftp (~> 2.0.5)
|
10
|
-
thor (~> 0.14.6)
|
11
|
-
twitter (~> 1.1.2)
|
12
|
-
|
13
1
|
GEM
|
14
2
|
remote: http://rubygems.org/
|
15
3
|
specs:
|
@@ -29,9 +17,9 @@ GEM
|
|
29
17
|
rack (< 2, >= 1.1.0)
|
30
18
|
faraday_middleware (0.3.2)
|
31
19
|
faraday (~> 0.5.4)
|
32
|
-
fog (0.
|
20
|
+
fog (0.6.0)
|
33
21
|
builder
|
34
|
-
excon (>= 0.5.
|
22
|
+
excon (>= 0.5.5)
|
35
23
|
formatador (>= 0.0.16)
|
36
24
|
json
|
37
25
|
mime-types
|
@@ -70,7 +58,7 @@ GEM
|
|
70
58
|
notifiers (1.1.0)
|
71
59
|
oauth (0.4.4)
|
72
60
|
polyglot (0.3.1)
|
73
|
-
rack (1.2.
|
61
|
+
rack (1.2.2)
|
74
62
|
rspec (2.5.0)
|
75
63
|
rspec-core (~> 2.5.0)
|
76
64
|
rspec-expectations (~> 2.5.0)
|
@@ -83,7 +71,6 @@ GEM
|
|
83
71
|
ruby-hmac (0.4.0)
|
84
72
|
ruby-progressbar (0.0.9)
|
85
73
|
simple_oauth (0.1.4)
|
86
|
-
thor (0.14.6)
|
87
74
|
timecop (0.3.5)
|
88
75
|
treetop (1.4.9)
|
89
76
|
polyglot (>= 0.3.1)
|
@@ -100,9 +87,15 @@ PLATFORMS
|
|
100
87
|
ruby
|
101
88
|
|
102
89
|
DEPENDENCIES
|
103
|
-
|
90
|
+
dropbox (~> 1.2.3)
|
91
|
+
fog (~> 0.6.0)
|
104
92
|
fuubar
|
105
93
|
infinity_test
|
94
|
+
mail (~> 2.2.15)
|
106
95
|
mocha
|
96
|
+
net-scp (~> 1.0.4)
|
97
|
+
net-sftp (~> 2.0.5)
|
98
|
+
net-ssh (~> 2.1.3)
|
107
99
|
rspec
|
108
100
|
timecop
|
101
|
+
twitter (~> 1.1.2)
|
data/README.md
CHANGED
data/backup.gemspec
CHANGED
@@ -34,12 +34,6 @@ Gem::Specification.new do |gem|
|
|
34
34
|
|
35
35
|
##
|
36
36
|
# Production gem dependencies
|
37
|
-
gem.add_dependency 'thor',
|
38
|
-
gem.add_dependency 'fog', ['~> 0.5.3' ] # Amazon S3, Rackspace Cloud Files
|
39
|
-
gem.add_dependency 'dropbox', ['~> 1.2.3' ] # Dropbox
|
40
|
-
gem.add_dependency 'mail', ['~> 2.2.15'] # Mail
|
41
|
-
gem.add_dependency 'net-sftp', ['~> 2.0.5' ] # SFTP Protocol
|
42
|
-
gem.add_dependency 'net-scp', ['~> 1.0.4' ] # SCP Protocol
|
43
|
-
gem.add_dependency 'twitter', ['~> 1.1.2' ] # Twitter
|
37
|
+
gem.add_dependency 'thor', ['~> 0.14.6']
|
44
38
|
|
45
39
|
end
|
data/bin/backup
CHANGED
@@ -199,6 +199,44 @@ class BackupCLI < Thor
|
|
199
199
|
end
|
200
200
|
end
|
201
201
|
|
202
|
+
##
|
203
|
+
# [Dependencies]
|
204
|
+
# Returns a list of Backup's dependencies
|
205
|
+
desc 'dependencies', 'Display the list of dependencies for Backup, or install them through Backup.'
|
206
|
+
method_option :install, :type => :string
|
207
|
+
method_option :list, :type => :boolean
|
208
|
+
def dependencies
|
209
|
+
unless options.any?
|
210
|
+
puts
|
211
|
+
puts "To display a list of available dependencies, run:\n\n"
|
212
|
+
puts " backup dependencies --list"
|
213
|
+
puts
|
214
|
+
puts "To install one of these dependencies (with the correct version), run:\n\n"
|
215
|
+
puts " backup dependencies --install <name>"
|
216
|
+
exit
|
217
|
+
end
|
218
|
+
|
219
|
+
if options[:list]
|
220
|
+
Backup::Dependency.all.each do |name, gemspec|
|
221
|
+
puts
|
222
|
+
puts name
|
223
|
+
puts "--------------------------------------------------"
|
224
|
+
puts "version: #{gemspec[:version]}"
|
225
|
+
puts "lib required: #{gemspec[:require]}"
|
226
|
+
puts "used for: #{gemspec[:for]}"
|
227
|
+
end
|
228
|
+
end
|
229
|
+
|
230
|
+
if options[:install]
|
231
|
+
puts
|
232
|
+
puts "Installing \"#{options[:install]}\" version \"#{Backup::Dependency.all[options[:install]][:version]}\".."
|
233
|
+
puts "If this doesn't work, please issue the following command yourself:\n\n"
|
234
|
+
puts " gem install #{options[:install]} -v '#{Backup::Dependency.all[options[:install]][:version]}'\n\n"
|
235
|
+
puts "Please wait..\n\n"
|
236
|
+
puts %x[gem install #{options[:install]} -v '#{Backup::Dependency.all[options[:install]][:version]}']
|
237
|
+
end
|
238
|
+
end
|
239
|
+
|
202
240
|
##
|
203
241
|
# [Version]
|
204
242
|
# Returns the current version of the Backup gem
|
data/lib/backup.rb
CHANGED
@@ -44,12 +44,13 @@ module Backup
|
|
44
44
|
|
45
45
|
##
|
46
46
|
# Autoload Backup base files
|
47
|
-
autoload :Model,
|
48
|
-
autoload :Archive,
|
49
|
-
autoload :CLI,
|
50
|
-
autoload :Finder,
|
51
|
-
autoload :
|
52
|
-
autoload :
|
47
|
+
autoload :Model, File.join(LIBRARY_PATH, 'model')
|
48
|
+
autoload :Archive, File.join(LIBRARY_PATH, 'archive')
|
49
|
+
autoload :CLI, File.join(LIBRARY_PATH, 'cli')
|
50
|
+
autoload :Finder, File.join(LIBRARY_PATH, 'finder')
|
51
|
+
autoload :Dependency, File.join(LIBRARY_PATH, 'dependency')
|
52
|
+
autoload :Logger, File.join(LIBRARY_PATH, 'logger')
|
53
|
+
autoload :Version, File.join(LIBRARY_PATH, 'version')
|
53
54
|
|
54
55
|
##
|
55
56
|
# Autoload Backup configuration files
|
@@ -0,0 +1,84 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
module Backup
|
4
|
+
|
5
|
+
##
|
6
|
+
# A little self-contained gem manager for Backup.
|
7
|
+
# Rather than specifying hard dependencies in the gemspec, forcing users
|
8
|
+
# to install gems they do not want/need, Backup will notify them when a gem
|
9
|
+
# has not been installed, or when the gem's version is incorrect, and provide the
|
10
|
+
# command to install the gem. These dependencies are dynamically loaded in the Gemfile
|
11
|
+
class Dependency
|
12
|
+
extend Backup::CLI
|
13
|
+
|
14
|
+
##
|
15
|
+
# Returns a hash of dependencies that Backup requires
|
16
|
+
# in order to run every available feature
|
17
|
+
def self.all
|
18
|
+
{
|
19
|
+
'fog' => {
|
20
|
+
:require => 'fog',
|
21
|
+
:version => '~> 0.6.0',
|
22
|
+
:for => 'Amazon S3, Rackspace Cloud Files (S3, CloudFiles Storages)'
|
23
|
+
},
|
24
|
+
|
25
|
+
'dropbox' => {
|
26
|
+
:require => 'dropbox',
|
27
|
+
:version => '~> 1.2.3',
|
28
|
+
:for => 'Dropbox Web Service (Dropbox Storage)'
|
29
|
+
},
|
30
|
+
|
31
|
+
'net-sftp' => {
|
32
|
+
:require => 'net/sftp',
|
33
|
+
:version => '~> 2.0.5',
|
34
|
+
:for => 'SFTP Protocol (SFTP Storage)'
|
35
|
+
},
|
36
|
+
|
37
|
+
'net-scp' => {
|
38
|
+
:require => 'net/scp',
|
39
|
+
:version => '~> 1.0.4',
|
40
|
+
:for => 'SCP Protocol (SCP Storage)'
|
41
|
+
},
|
42
|
+
|
43
|
+
'net-ssh' => {
|
44
|
+
:require => 'net/ssh',
|
45
|
+
:version => '~> 2.1.3',
|
46
|
+
:for => 'SSH Protocol (SSH Storage)'
|
47
|
+
},
|
48
|
+
|
49
|
+
'mail' => {
|
50
|
+
:require => 'mail',
|
51
|
+
:version => '~> 2.2.15',
|
52
|
+
:for => 'Sending Emails (Mail Notifier)'
|
53
|
+
},
|
54
|
+
|
55
|
+
'twitter' => {
|
56
|
+
:require => 'twitter',
|
57
|
+
:version => '~> 1.1.2',
|
58
|
+
:for => 'Send Twitter Updates (Twitter Notifier)'
|
59
|
+
}
|
60
|
+
}
|
61
|
+
end
|
62
|
+
|
63
|
+
##
|
64
|
+
# Attempts to load the specified gem (by name and version).
|
65
|
+
# If the gem with the correct version cannot be found, it'll display a message
|
66
|
+
# to the user with instructions on how to install the required gem
|
67
|
+
def self.load(name)
|
68
|
+
begin
|
69
|
+
gem(name, all[name][:version])
|
70
|
+
require(all[name][:require])
|
71
|
+
rescue LoadError
|
72
|
+
Backup::Logger.error("Dependency missing. Please install #{name} version #{all[name][:version]} and try again.")
|
73
|
+
puts "\n\s\sgem install #{name} -v '#{all[name][:version]}'\n\n"
|
74
|
+
puts "Dependency required for:"
|
75
|
+
puts "\n\s\s#{all[name][:for]}"
|
76
|
+
puts "\nTrying to install the #{name} gem for you.. please wait."
|
77
|
+
puts "Once installed, retry the backup procedure.\n\n"
|
78
|
+
puts run("#{ utility(:gem) } install #{name} -v '#{all[name][:version]}'")
|
79
|
+
exit
|
80
|
+
end
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
end
|
data/lib/backup/notifier/mail.rb
CHANGED
data/lib/backup/storage/rsync.rb
CHANGED
data/lib/backup/storage/s3.rb
CHANGED
data/lib/backup/storage/scp.rb
CHANGED
data/lib/backup/storage/sftp.rb
CHANGED
data/lib/backup/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backup
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 23
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 3
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 3.0.
|
9
|
+
- 8
|
10
|
+
version: 3.0.8
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Michael van Rooijen
|
@@ -34,102 +34,6 @@ dependencies:
|
|
34
34
|
version: 0.14.6
|
35
35
|
type: :runtime
|
36
36
|
version_requirements: *id001
|
37
|
-
- !ruby/object:Gem::Dependency
|
38
|
-
name: fog
|
39
|
-
prerelease: false
|
40
|
-
requirement: &id002 !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
|
-
requirements:
|
43
|
-
- - ~>
|
44
|
-
- !ruby/object:Gem::Version
|
45
|
-
hash: 13
|
46
|
-
segments:
|
47
|
-
- 0
|
48
|
-
- 5
|
49
|
-
- 3
|
50
|
-
version: 0.5.3
|
51
|
-
type: :runtime
|
52
|
-
version_requirements: *id002
|
53
|
-
- !ruby/object:Gem::Dependency
|
54
|
-
name: dropbox
|
55
|
-
prerelease: false
|
56
|
-
requirement: &id003 !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
|
-
requirements:
|
59
|
-
- - ~>
|
60
|
-
- !ruby/object:Gem::Version
|
61
|
-
hash: 25
|
62
|
-
segments:
|
63
|
-
- 1
|
64
|
-
- 2
|
65
|
-
- 3
|
66
|
-
version: 1.2.3
|
67
|
-
type: :runtime
|
68
|
-
version_requirements: *id003
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: mail
|
71
|
-
prerelease: false
|
72
|
-
requirement: &id004 !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
|
-
requirements:
|
75
|
-
- - ~>
|
76
|
-
- !ruby/object:Gem::Version
|
77
|
-
hash: 25
|
78
|
-
segments:
|
79
|
-
- 2
|
80
|
-
- 2
|
81
|
-
- 15
|
82
|
-
version: 2.2.15
|
83
|
-
type: :runtime
|
84
|
-
version_requirements: *id004
|
85
|
-
- !ruby/object:Gem::Dependency
|
86
|
-
name: net-sftp
|
87
|
-
prerelease: false
|
88
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
|
-
requirements:
|
91
|
-
- - ~>
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
hash: 5
|
94
|
-
segments:
|
95
|
-
- 2
|
96
|
-
- 0
|
97
|
-
- 5
|
98
|
-
version: 2.0.5
|
99
|
-
type: :runtime
|
100
|
-
version_requirements: *id005
|
101
|
-
- !ruby/object:Gem::Dependency
|
102
|
-
name: net-scp
|
103
|
-
prerelease: false
|
104
|
-
requirement: &id006 !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
|
-
requirements:
|
107
|
-
- - ~>
|
108
|
-
- !ruby/object:Gem::Version
|
109
|
-
hash: 31
|
110
|
-
segments:
|
111
|
-
- 1
|
112
|
-
- 0
|
113
|
-
- 4
|
114
|
-
version: 1.0.4
|
115
|
-
type: :runtime
|
116
|
-
version_requirements: *id006
|
117
|
-
- !ruby/object:Gem::Dependency
|
118
|
-
name: twitter
|
119
|
-
prerelease: false
|
120
|
-
requirement: &id007 !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
|
-
requirements:
|
123
|
-
- - ~>
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
hash: 23
|
126
|
-
segments:
|
127
|
-
- 1
|
128
|
-
- 1
|
129
|
-
- 2
|
130
|
-
version: 1.1.2
|
131
|
-
type: :runtime
|
132
|
-
version_requirements: *id007
|
133
37
|
description:
|
134
38
|
email: meskyanichi@gmail.com
|
135
39
|
executables:
|
@@ -183,6 +87,7 @@ files:
|
|
183
87
|
- lib/backup/database/mysql.rb
|
184
88
|
- lib/backup/database/postgresql.rb
|
185
89
|
- lib/backup/database/redis.rb
|
90
|
+
- lib/backup/dependency.rb
|
186
91
|
- lib/backup/encryptor/base.rb
|
187
92
|
- lib/backup/encryptor/gpg.rb
|
188
93
|
- lib/backup/encryptor/open_ssl.rb
|