filbert 0.0.6 → 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +27 -1
- data/filbert.gemspec +3 -2
- data/lib/filbert/task.rb +9 -11
- data/lib/filbert/version.rb +1 -1
- metadata +25 -17
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ea1dd823ecbaa309c75980c3b0e5f94162a44b99
|
4
|
+
data.tar.gz: 4061df6ab0cfc924d43d1e8c6eace95e2d91f908
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f7a885db781a241683b26db3902ec19a9b2ac29f081b52e21dfad88f51069280fd041e537d9448982faf82efbbae4dc0d31013c1ddd5707f0b9b38cefb1364d9
|
7
|
+
data.tar.gz: 649f56be8b16eb9f5fd595833fe065647dc00b1453367a553b4d5b2a7b0f43fe58dbbfde8df574740c0d3207b582e3d39a294e6fa7aa5402be538409912c3341
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Filbert
|
2
2
|
|
3
|
-
Filbert downloads a backup of a follower database for a given heroku application
|
3
|
+
Filbert downloads a backup of a follower database for a given heroku application, stores it in `~/.heroku_backups`, and cleans up the backup directory (see cleanup).
|
4
4
|
|
5
5
|
## Installation
|
6
6
|
|
@@ -14,6 +14,10 @@ to get access to the app you are planning to backup.
|
|
14
14
|
|
15
15
|
## Usage
|
16
16
|
|
17
|
+
### Backups
|
18
|
+
|
19
|
+
Note: the backup task invokes cleanup task automatically.
|
20
|
+
|
17
21
|
filbert backup --app your-heroku-appname
|
18
22
|
|
19
23
|
You can add it as a cron task if you want
|
@@ -24,6 +28,28 @@ You can add it as a cron task if you want
|
|
24
28
|
# 'man 5 crontab' for more examples
|
25
29
|
*/15 * * * * bash -lc "filbert backup --app heroku-app-name"
|
26
30
|
|
31
|
+
### Cleanup
|
32
|
+
|
33
|
+
You can invoke the cleanup task separately by running:
|
34
|
+
|
35
|
+
filbert cleanup
|
36
|
+
|
37
|
+
Cleanup deletes backup files keeping:
|
38
|
+
|
39
|
+
* All files that are not older than 12 hours old
|
40
|
+
* One monthly copy of files older than 6 months
|
41
|
+
* One weekly copy of files older than 3 months
|
42
|
+
* One daily copy of files older than 1 week
|
43
|
+
* One hourly copy of files older than 12 hours
|
44
|
+
|
45
|
+
You can see what files would be deleted by passing in `-p`
|
46
|
+
|
47
|
+
filbert cleanup --pretend
|
48
|
+
# => Would delete:
|
49
|
+
# => ~/.heroku_backups/2013-01-29.dump
|
50
|
+
# => ~/.heroku_backups/2013-01-28.dump
|
51
|
+
# => ~/.heroku_backups/2013-01-27.dump
|
52
|
+
|
27
53
|
## Contributing
|
28
54
|
|
29
55
|
1. Fork it
|
data/filbert.gemspec
CHANGED
@@ -16,6 +16,7 @@ Gem::Specification.new do |gem|
|
|
16
16
|
gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
|
-
gem.add_dependency
|
20
|
-
gem.add_dependency
|
19
|
+
gem.add_dependency 'heroku'
|
20
|
+
gem.add_dependency 'thor'
|
21
|
+
gem.add_dependency 'clean_files', '~> 1.1.1'
|
21
22
|
end
|
data/lib/filbert/task.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'filbert/db_config'
|
2
|
+
require 'clean_files/cleaner'
|
2
3
|
|
3
4
|
module Filbert
|
4
5
|
class Task < Thor
|
@@ -20,12 +21,16 @@ module Filbert
|
|
20
21
|
invoke :cleanup, [], {}
|
21
22
|
end
|
22
23
|
|
24
|
+
method_option :pretend, type: :boolean, required: false, default: false, aliases: '-p'
|
23
25
|
desc "cleanup", "remove backup files older than 12 hours"
|
24
26
|
def cleanup
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
27
|
+
pretend = options[:pretend]
|
28
|
+
say "Would remove:" if pretend
|
29
|
+
filter = File.join(backups_dir, "*.dump")
|
30
|
+
CleanFiles::Cleaner.new(filter, pretend: pretend, verbose: pretend, threshold: 6.months.ago, monthly: true).start
|
31
|
+
CleanFiles::Cleaner.new(filter, pretend: pretend, verbose: pretend, threshold: 3.months.ago, weekly: true).start
|
32
|
+
CleanFiles::Cleaner.new(filter, pretend: pretend, verbose: pretend, threshold: 1.week.ago, daily: true).start
|
33
|
+
CleanFiles::Cleaner.new(filter, pretend: pretend, verbose: pretend, threshold: 12.hours.ago, hourly: true).start
|
29
34
|
end
|
30
35
|
|
31
36
|
method_option :config, type: :string, default: "config/database.yml"
|
@@ -72,13 +77,6 @@ module Filbert
|
|
72
77
|
out
|
73
78
|
end
|
74
79
|
|
75
|
-
def old_files
|
76
|
-
hurdle = Time.now - 60*60*12
|
77
|
-
ordered_dumps.select{ |file|
|
78
|
-
file.mtime < hurdle
|
79
|
-
}
|
80
|
-
end
|
81
|
-
|
82
80
|
def ordered_dumps
|
83
81
|
Dir.new(backups_dir).select{ |x|
|
84
82
|
x.end_with? '.dump'
|
data/lib/filbert/version.rb
CHANGED
metadata
CHANGED
@@ -1,48 +1,57 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: filbert
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.0
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Tadas Tamosauskas
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-03-07 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: heroku
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
|
-
- -
|
17
|
+
- - '>='
|
20
18
|
- !ruby/object:Gem::Version
|
21
19
|
version: '0'
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
23
|
requirements:
|
27
|
-
- -
|
24
|
+
- - '>='
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '0'
|
30
27
|
- !ruby/object:Gem::Dependency
|
31
28
|
name: thor
|
32
29
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
30
|
requirements:
|
35
|
-
- -
|
31
|
+
- - '>='
|
36
32
|
- !ruby/object:Gem::Version
|
37
33
|
version: '0'
|
38
34
|
type: :runtime
|
39
35
|
prerelease: false
|
40
36
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
37
|
requirements:
|
43
|
-
- -
|
38
|
+
- - '>='
|
44
39
|
- !ruby/object:Gem::Version
|
45
40
|
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: clean_files
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 1.1.1
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 1.1.1
|
46
55
|
description: A utility to download backups from Heroku followers
|
47
56
|
email:
|
48
57
|
- tadas@pdfcv.com
|
@@ -65,26 +74,25 @@ files:
|
|
65
74
|
- lib/filbert/version.rb
|
66
75
|
homepage: https://github.com/alphasights/filbert
|
67
76
|
licenses: []
|
77
|
+
metadata: {}
|
68
78
|
post_install_message:
|
69
79
|
rdoc_options: []
|
70
80
|
require_paths:
|
71
81
|
- lib
|
72
82
|
required_ruby_version: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
83
|
requirements:
|
75
|
-
- -
|
84
|
+
- - '>='
|
76
85
|
- !ruby/object:Gem::Version
|
77
86
|
version: '0'
|
78
87
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
79
|
-
none: false
|
80
88
|
requirements:
|
81
|
-
- -
|
89
|
+
- - '>='
|
82
90
|
- !ruby/object:Gem::Version
|
83
91
|
version: '0'
|
84
92
|
requirements: []
|
85
93
|
rubyforge_project:
|
86
|
-
rubygems_version:
|
94
|
+
rubygems_version: 2.0.0
|
87
95
|
signing_key:
|
88
|
-
specification_version:
|
96
|
+
specification_version: 4
|
89
97
|
summary: Heroku followers' backups
|
90
98
|
test_files: []
|