filbert 0.0.6 → 0.1.0
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.
- 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: []
|