backup_cleaner 1.0.0 → 1.0.1
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.rdoc +8 -10
- data/Rakefile +1 -0
- data/VERSION +1 -1
- data/backup_cleaner.gemspec +19 -19
- data/lib/backup_cleaner.rb +6 -0
- data/lib/backup_cleaner/cli.rb +1 -1
- metadata +19 -31
- data/.gitignore +0 -21
data/README.rdoc
CHANGED
@@ -1,16 +1,14 @@
|
|
1
1
|
= backup_cleaner
|
2
2
|
|
3
|
-
|
3
|
+
A simple command-line script to clean up old backups, leaving weekly and/or monthly backups for specified date ranges.
|
4
4
|
|
5
|
-
==
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
13
|
-
* Send me a pull request. Bonus points for topic branches.
|
5
|
+
== Instructions
|
6
|
+
|
7
|
+
Install with:
|
8
|
+
gem install backup_cleaner
|
9
|
+
|
10
|
+
To view the help:
|
11
|
+
backup_cleaner --help
|
14
12
|
|
15
13
|
== Copyright
|
16
14
|
|
data/Rakefile
CHANGED
@@ -12,6 +12,7 @@ begin
|
|
12
12
|
gem.authors = ["Brian Alexander"]
|
13
13
|
gem.add_dependency "activesupport", ">= 3.0.0"
|
14
14
|
gem.add_dependency "trollop", ">= 0"
|
15
|
+
gem.add_dependency "i18n", ">= 0"
|
15
16
|
gem.add_development_dependency "thoughtbot-shoulda", ">= 0"
|
16
17
|
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
17
18
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0.
|
1
|
+
1.0.1
|
data/backup_cleaner.gemspec
CHANGED
@@ -1,63 +1,63 @@
|
|
1
1
|
# Generated by jeweler
|
2
2
|
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{backup_cleaner}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Brian Alexander"]
|
12
|
-
s.date = %q{
|
12
|
+
s.date = %q{2011-03-14}
|
13
13
|
s.default_executable = %q{backup_cleaner}
|
14
14
|
s.description = %q{A command-line script for cleaning up old backups}
|
15
15
|
s.email = %q{balexand@gmail.com}
|
16
16
|
s.executables = ["backup_cleaner"]
|
17
17
|
s.extra_rdoc_files = [
|
18
18
|
"LICENSE",
|
19
|
-
|
19
|
+
"README.rdoc"
|
20
20
|
]
|
21
21
|
s.files = [
|
22
22
|
".document",
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
"test/test_backup_cleaner.rb"
|
23
|
+
"LICENSE",
|
24
|
+
"README.rdoc",
|
25
|
+
"Rakefile",
|
26
|
+
"VERSION",
|
27
|
+
"backup_cleaner.gemspec",
|
28
|
+
"bin/backup_cleaner",
|
29
|
+
"lib/backup_cleaner.rb",
|
30
|
+
"lib/backup_cleaner/cli.rb",
|
31
|
+
"test/helper.rb",
|
32
|
+
"test/test_backup_cleaner.rb"
|
34
33
|
]
|
35
34
|
s.homepage = %q{http://github.com/balexand/backup_cleaner}
|
36
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
37
35
|
s.require_paths = ["lib"]
|
38
|
-
s.rubygems_version = %q{1.
|
36
|
+
s.rubygems_version = %q{1.6.2}
|
39
37
|
s.summary = %q{A command-line script for cleaning up old backups}
|
40
38
|
s.test_files = [
|
41
39
|
"test/helper.rb",
|
42
|
-
|
40
|
+
"test/test_backup_cleaner.rb"
|
43
41
|
]
|
44
42
|
|
45
43
|
if s.respond_to? :specification_version then
|
46
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
47
44
|
s.specification_version = 3
|
48
45
|
|
49
46
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
50
47
|
s.add_runtime_dependency(%q<activesupport>, [">= 3.0.0"])
|
51
48
|
s.add_runtime_dependency(%q<trollop>, [">= 0"])
|
49
|
+
s.add_runtime_dependency(%q<i18n>, [">= 0"])
|
52
50
|
s.add_development_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
53
51
|
else
|
54
52
|
s.add_dependency(%q<activesupport>, [">= 3.0.0"])
|
55
53
|
s.add_dependency(%q<trollop>, [">= 0"])
|
54
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
56
55
|
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
57
56
|
end
|
58
57
|
else
|
59
58
|
s.add_dependency(%q<activesupport>, [">= 3.0.0"])
|
60
59
|
s.add_dependency(%q<trollop>, [">= 0"])
|
60
|
+
s.add_dependency(%q<i18n>, [">= 0"])
|
61
61
|
s.add_dependency(%q<thoughtbot-shoulda>, [">= 0"])
|
62
62
|
end
|
63
63
|
end
|
data/lib/backup_cleaner.rb
CHANGED
@@ -2,6 +2,7 @@ require 'active_support/time'
|
|
2
2
|
require 'fileutils'
|
3
3
|
require 'set'
|
4
4
|
|
5
|
+
# See backup_cleaner/cli for API documentation
|
5
6
|
module BackupCleaner
|
6
7
|
DATE_PATTERN = /^(.*)(\d{4}[-\.]\d{2}[-\.]\d{2})(.*)$/
|
7
8
|
|
@@ -55,6 +56,10 @@ module BackupCleaner
|
|
55
56
|
end
|
56
57
|
private_class_method :first_by_date_property
|
57
58
|
|
59
|
+
# Returns a unique number identifying the week that this date is a memeber of. If
|
60
|
+
# date d1 is in a later week than d2, then week_ordering_number(d1) > week_ordering_number(d2).
|
61
|
+
# If d1 is in the same week as d2, then week_ordering_number(d1) == week_ordering_number(d2).
|
62
|
+
# Week number for adjacent weeks are not guaranteed to be adjacent to one another.
|
58
63
|
def self.week_ordering_number(date)
|
59
64
|
# cweek considers weeks to start on Monday; adjust so week starts on Sunday
|
60
65
|
date += 1.day if date.wday == 0
|
@@ -62,6 +67,7 @@ module BackupCleaner
|
|
62
67
|
end
|
63
68
|
private_class_method :week_ordering_number
|
64
69
|
|
70
|
+
# Like week_ordering_number except for month instead of week.
|
65
71
|
def self.month_ordering_number(date)
|
66
72
|
date.month + date.year * 100
|
67
73
|
end
|
data/lib/backup_cleaner/cli.rb
CHANGED
@@ -10,7 +10,7 @@ Cleans up backup files or folders within the specified folder. The names of thes
|
|
10
10
|
in a format like: YYYY-MM-DD. Any files/folders with names not matching this pattern will be left untouched. Between \
|
11
11
|
today and <days> days ago, all backups will be kept. Between today and <weeks> weeks ago, weekly backups will be kept. For \
|
12
12
|
all time, monthly backups will be kept. For weekly/monthly backups, the earliest available backup from the week/month will \
|
13
|
-
be kept. For example, if daily backups are present then weekly backups will be from Sunday and monthly backups will be from\
|
13
|
+
be kept. For example, if daily backups are present then weekly backups will be from Sunday and monthly backups will be from \
|
14
14
|
the 1st of the month.
|
15
15
|
|
16
16
|
This script can also handle backups from multiple projects in one directory as long as they are named differently. If files \
|
metadata
CHANGED
@@ -1,13 +1,8 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: backup_cleaner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
segments:
|
7
|
-
- 1
|
8
|
-
- 0
|
9
|
-
- 0
|
10
|
-
version: 1.0.0
|
4
|
+
prerelease:
|
5
|
+
version: 1.0.1
|
11
6
|
platform: ruby
|
12
7
|
authors:
|
13
8
|
- Brian Alexander
|
@@ -15,7 +10,7 @@ autorequire:
|
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
12
|
|
18
|
-
date:
|
13
|
+
date: 2011-03-14 00:00:00 +07:00
|
19
14
|
default_executable: backup_cleaner
|
20
15
|
dependencies:
|
21
16
|
- !ruby/object:Gem::Dependency
|
@@ -26,11 +21,6 @@ dependencies:
|
|
26
21
|
requirements:
|
27
22
|
- - ">="
|
28
23
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 7
|
30
|
-
segments:
|
31
|
-
- 3
|
32
|
-
- 0
|
33
|
-
- 0
|
34
24
|
version: 3.0.0
|
35
25
|
type: :runtime
|
36
26
|
version_requirements: *id001
|
@@ -42,26 +32,31 @@ dependencies:
|
|
42
32
|
requirements:
|
43
33
|
- - ">="
|
44
34
|
- !ruby/object:Gem::Version
|
45
|
-
hash: 3
|
46
|
-
segments:
|
47
|
-
- 0
|
48
35
|
version: "0"
|
49
36
|
type: :runtime
|
50
37
|
version_requirements: *id002
|
51
38
|
- !ruby/object:Gem::Dependency
|
52
|
-
name:
|
39
|
+
name: i18n
|
53
40
|
prerelease: false
|
54
41
|
requirement: &id003 !ruby/object:Gem::Requirement
|
55
42
|
none: false
|
56
43
|
requirements:
|
57
44
|
- - ">="
|
58
45
|
- !ruby/object:Gem::Version
|
59
|
-
hash: 3
|
60
|
-
segments:
|
61
|
-
- 0
|
62
46
|
version: "0"
|
63
|
-
type: :
|
47
|
+
type: :runtime
|
64
48
|
version_requirements: *id003
|
49
|
+
- !ruby/object:Gem::Dependency
|
50
|
+
name: thoughtbot-shoulda
|
51
|
+
prerelease: false
|
52
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
53
|
+
none: false
|
54
|
+
requirements:
|
55
|
+
- - ">="
|
56
|
+
- !ruby/object:Gem::Version
|
57
|
+
version: "0"
|
58
|
+
type: :development
|
59
|
+
version_requirements: *id004
|
65
60
|
description: A command-line script for cleaning up old backups
|
66
61
|
email: balexand@gmail.com
|
67
62
|
executables:
|
@@ -73,7 +68,6 @@ extra_rdoc_files:
|
|
73
68
|
- README.rdoc
|
74
69
|
files:
|
75
70
|
- .document
|
76
|
-
- .gitignore
|
77
71
|
- LICENSE
|
78
72
|
- README.rdoc
|
79
73
|
- Rakefile
|
@@ -89,8 +83,8 @@ homepage: http://github.com/balexand/backup_cleaner
|
|
89
83
|
licenses: []
|
90
84
|
|
91
85
|
post_install_message:
|
92
|
-
rdoc_options:
|
93
|
-
|
86
|
+
rdoc_options: []
|
87
|
+
|
94
88
|
require_paths:
|
95
89
|
- lib
|
96
90
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -98,23 +92,17 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
98
92
|
requirements:
|
99
93
|
- - ">="
|
100
94
|
- !ruby/object:Gem::Version
|
101
|
-
hash: 3
|
102
|
-
segments:
|
103
|
-
- 0
|
104
95
|
version: "0"
|
105
96
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
106
97
|
none: false
|
107
98
|
requirements:
|
108
99
|
- - ">="
|
109
100
|
- !ruby/object:Gem::Version
|
110
|
-
hash: 3
|
111
|
-
segments:
|
112
|
-
- 0
|
113
101
|
version: "0"
|
114
102
|
requirements: []
|
115
103
|
|
116
104
|
rubyforge_project:
|
117
|
-
rubygems_version: 1.
|
105
|
+
rubygems_version: 1.6.2
|
118
106
|
signing_key:
|
119
107
|
specification_version: 3
|
120
108
|
summary: A command-line script for cleaning up old backups
|