astrails-safe 0.1.6 → 0.1.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/README.markdown +33 -3
- data/Rakefile +3 -3
- data/VERSION.yml +1 -1
- data/bin/astrails-safe +1 -7
- data/examples/example_helper.rb +3 -3
- data/examples/integration/archive_integration_example.rb +86 -0
- data/examples/unit/archive_example.rb +67 -0
- data/examples/unit/config_example.rb +49 -3
- data/examples/unit/gpg_example.rb +138 -0
- data/examples/unit/gzip_example.rb +64 -0
- data/examples/unit/local_example.rb +82 -0
- data/examples/unit/mysqldump_example.rb +83 -0
- data/examples/unit/pgdump_example.rb +45 -0
- data/examples/unit/s3_example.rb +28 -0
- data/examples/unit/svndump_example.rb +39 -0
- data/lib/astrails/safe.rb +24 -7
- data/lib/astrails/safe/archive.rb +2 -2
- data/lib/astrails/safe/backup.rb +20 -0
- data/lib/astrails/safe/config/builder.rb +6 -6
- data/lib/astrails/safe/config/node.rb +1 -2
- data/lib/astrails/safe/gpg.rb +14 -11
- data/lib/astrails/safe/gzip.rb +8 -8
- data/lib/astrails/safe/local.rb +8 -17
- data/lib/astrails/safe/mysqldump.rb +2 -2
- data/lib/astrails/safe/pgdump.rb +36 -0
- data/lib/astrails/safe/pipe.rb +5 -7
- data/lib/astrails/safe/s3.rb +9 -11
- data/lib/astrails/safe/sink.rb +7 -11
- data/lib/astrails/safe/source.rb +30 -15
- data/lib/astrails/safe/stream.rb +7 -33
- data/lib/astrails/safe/svndump.rb +13 -0
- data/lib/astrails/safe/tmp_file.rb +9 -5
- data/templates/script.rb +13 -0
- metadata +18 -5
- data/examples/unit/stream_example.rb +0 -33
@@ -2,22 +2,26 @@ require 'tmpdir'
|
|
2
2
|
module Astrails
|
3
3
|
module Safe
|
4
4
|
module TmpFile
|
5
|
-
@
|
6
|
-
|
5
|
+
@keep_files = []
|
6
|
+
|
7
|
+
def self.tmproot
|
8
|
+
@tmproot ||= Dir.mktmpdir
|
9
|
+
end
|
7
10
|
|
8
11
|
def self.cleanup
|
9
|
-
FileUtils.remove_entry_secure
|
12
|
+
FileUtils.remove_entry_secure tmproot
|
13
|
+
@tmproot = nil
|
10
14
|
end
|
11
15
|
|
12
16
|
def self.create(name)
|
13
17
|
# create temp directory
|
14
18
|
|
15
|
-
file = Tempfile.new(name,
|
19
|
+
file = Tempfile.new(name, tmproot)
|
16
20
|
|
17
21
|
yield file
|
18
22
|
|
19
23
|
file.close
|
20
|
-
@
|
24
|
+
@keep_files << file # so that it will not get gcollected and removed from filesystem until the end
|
21
25
|
file.path
|
22
26
|
end
|
23
27
|
end
|
data/templates/script.rb
CHANGED
@@ -72,6 +72,19 @@ safe do
|
|
72
72
|
|
73
73
|
end
|
74
74
|
|
75
|
+
# # uncomment to enable
|
76
|
+
# # backup PostgreSQL databases with pg_dump
|
77
|
+
# pgdump do
|
78
|
+
# option "-i -x -O"
|
79
|
+
#
|
80
|
+
# user "markmansour"
|
81
|
+
# # password "" - leave this out if you have ident setup
|
82
|
+
#
|
83
|
+
# # database is a 'collection' element. it must have a hash or block parameter
|
84
|
+
# # it will be 'collected' in a 'databases', with database id (1st arg) used as hash key
|
85
|
+
# database :blog
|
86
|
+
# database :production
|
87
|
+
# end
|
75
88
|
|
76
89
|
tar do
|
77
90
|
# 'archive' is a collection item, just like 'database'
|
metadata
CHANGED
@@ -1,15 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: astrails-safe
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Astrails Ltd.
|
8
|
+
- Mark Mansour
|
8
9
|
autorequire:
|
9
10
|
bindir: bin
|
10
11
|
cert_chain: []
|
11
12
|
|
12
|
-
date: 2009-
|
13
|
+
date: 2009-05-21 00:00:00 -07:00
|
13
14
|
default_executable: astrails-safe
|
14
15
|
dependencies:
|
15
16
|
- !ruby/object:Gem::Dependency
|
@@ -22,7 +23,7 @@ dependencies:
|
|
22
23
|
- !ruby/object:Gem::Version
|
23
24
|
version: "0"
|
24
25
|
version:
|
25
|
-
description: Simple tool to backup MySQL
|
26
|
+
description: Simple tool to backup databases (MySQL and PostgreSQL) and filesystem locally or to Amazon S3 (with optional encryption)
|
26
27
|
email: we@astrails.com
|
27
28
|
executables:
|
28
29
|
- astrails-safe
|
@@ -36,12 +37,22 @@ files:
|
|
36
37
|
- VERSION.yml
|
37
38
|
- bin/astrails-safe
|
38
39
|
- examples/example_helper.rb
|
40
|
+
- examples/integration
|
41
|
+
- examples/integration/archive_integration_example.rb
|
39
42
|
- examples/unit
|
43
|
+
- examples/unit/archive_example.rb
|
40
44
|
- examples/unit/config_example.rb
|
41
|
-
- examples/unit/
|
45
|
+
- examples/unit/gpg_example.rb
|
46
|
+
- examples/unit/gzip_example.rb
|
47
|
+
- examples/unit/local_example.rb
|
48
|
+
- examples/unit/mysqldump_example.rb
|
49
|
+
- examples/unit/pgdump_example.rb
|
50
|
+
- examples/unit/s3_example.rb
|
51
|
+
- examples/unit/svndump_example.rb
|
42
52
|
- lib/astrails
|
43
53
|
- lib/astrails/safe
|
44
54
|
- lib/astrails/safe/archive.rb
|
55
|
+
- lib/astrails/safe/backup.rb
|
45
56
|
- lib/astrails/safe/config
|
46
57
|
- lib/astrails/safe/config/builder.rb
|
47
58
|
- lib/astrails/safe/config/node.rb
|
@@ -49,11 +60,13 @@ files:
|
|
49
60
|
- lib/astrails/safe/gzip.rb
|
50
61
|
- lib/astrails/safe/local.rb
|
51
62
|
- lib/astrails/safe/mysqldump.rb
|
63
|
+
- lib/astrails/safe/pgdump.rb
|
52
64
|
- lib/astrails/safe/pipe.rb
|
53
65
|
- lib/astrails/safe/s3.rb
|
54
66
|
- lib/astrails/safe/sink.rb
|
55
67
|
- lib/astrails/safe/source.rb
|
56
68
|
- lib/astrails/safe/stream.rb
|
69
|
+
- lib/astrails/safe/svndump.rb
|
57
70
|
- lib/astrails/safe/tmp_file.rb
|
58
71
|
- lib/astrails/safe.rb
|
59
72
|
- lib/extensions
|
@@ -87,6 +100,6 @@ rubyforge_project:
|
|
87
100
|
rubygems_version: 1.2.0
|
88
101
|
signing_key:
|
89
102
|
specification_version: 2
|
90
|
-
summary: Backup filesystem and MySQL to Amazon S3 (with encryption)
|
103
|
+
summary: Backup filesystem and databases (MySQL and PostgreSQL) to Amazon S3 (with encryption)
|
91
104
|
test_files: []
|
92
105
|
|
@@ -1,33 +0,0 @@
|
|
1
|
-
require File.expand_path(File.dirname(__FILE__) + '/../example_helper')
|
2
|
-
|
3
|
-
describe Astrails::Safe::Stream do
|
4
|
-
|
5
|
-
before(:each) do
|
6
|
-
@parent = Object.new
|
7
|
-
@stream = Astrails::Safe::Stream.new(@parent)
|
8
|
-
@r = rand(10)
|
9
|
-
end
|
10
|
-
|
11
|
-
def self.it_delegates_to_parent(prop)
|
12
|
-
it "delegates #{prop} to parent if not set" do
|
13
|
-
mock(@parent).__send__(prop) {@r}
|
14
|
-
@stream.send(prop).should == @r
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
def self.it_delegates_to_parent_with_cache(prop)
|
19
|
-
it_delegates_to_parent(prop)
|
20
|
-
|
21
|
-
it "uses cached value for #{prop}" do
|
22
|
-
dont_allow(@parent).__send__(prop)
|
23
|
-
@stream.instance_variable_set "@#{prop}", @r + 1
|
24
|
-
@stream.send(prop).should == @r + 1
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
it_delegates_to_parent_with_cache :id
|
29
|
-
it_delegates_to_parent_with_cache :config
|
30
|
-
|
31
|
-
it_delegates_to_parent :filename
|
32
|
-
|
33
|
-
end
|