tms 1.0.1 → 1.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.
- data/.gitignore +4 -0
- data/VERSION +1 -1
- data/bin/tms +8 -0
- data/lib/tms/backup.rb +34 -9
- data/tms.gemspec +2 -2
- metadata +4 -4
data/.gitignore
CHANGED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.0
|
1
|
+
1.1.0
|
data/bin/tms
CHANGED
@@ -21,6 +21,14 @@ Usege:
|
|
21
21
|
op.on('-d', '--directory DIRECTORY', 'Use backup directory') do |dir|
|
22
22
|
Tms::Backup.backups_dir = dir
|
23
23
|
end
|
24
|
+
|
25
|
+
op.on('-f', '--filter DIRECTORY', 'Show diff starting from directory') do |dir|
|
26
|
+
Tms::Backup.filter_dir = dir
|
27
|
+
end
|
28
|
+
|
29
|
+
op.on('-p', '--progress', 'Show backups in progress') do
|
30
|
+
Tms::Backup.show_in_progress = true
|
31
|
+
end
|
24
32
|
end.parse!(options)
|
25
33
|
|
26
34
|
ids = ids.map(&:to_i)
|
data/lib/tms/backup.rb
CHANGED
@@ -18,18 +18,38 @@ class Tms::Backup
|
|
18
18
|
@backups_dir = Pathname(dir)
|
19
19
|
end
|
20
20
|
|
21
|
+
attr_accessor :filter_dir
|
22
|
+
attr_accessor :show_in_progress
|
23
|
+
|
21
24
|
def list
|
22
25
|
@list ||= begin
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
+
backups = []
|
27
|
+
backups_dir.children.each do |path|
|
28
|
+
case path.basename.to_s
|
29
|
+
when /^\d{4}-\d{2}-\d{2}-\d{6}$/
|
30
|
+
backups << new(path)
|
31
|
+
when /^\d{4}-\d{2}-\d{2}-\d{6}\.inProgress$/
|
32
|
+
if show_in_progress
|
33
|
+
path.children.select(&:directory?).each do |path_in_progress|
|
34
|
+
backups << new(path_in_progress, true)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
backups.sort
|
26
40
|
end
|
27
41
|
end
|
28
42
|
|
29
43
|
def diff(a, b)
|
30
44
|
total = 0
|
31
|
-
|
32
|
-
|
45
|
+
if filter_dir
|
46
|
+
root_dir = (a.path.children + b.path.children).select(&:directory?).select{ |child| Pathname(File.join(child, filter_dir)).exist? }.map(&:basename).uniq
|
47
|
+
root_dir = File.join(root_dir, filter_dir)
|
48
|
+
total += compare(a.path + root_dir, b.path + root_dir, Pathname('/') + root_dir)
|
49
|
+
else
|
50
|
+
(a.path.children(false) | b.path.children(false)).reject{ |child| child.to_s[0, 1] == '.' }.sort.each do |path|
|
51
|
+
total += compare(a.path + path, b.path + path, Pathname('/') + path)
|
52
|
+
end
|
33
53
|
end
|
34
54
|
puts "#{'Total:'.bold} #{Tms::Space.space(total, :color => true)}"
|
35
55
|
end
|
@@ -69,13 +89,14 @@ class Tms::Backup
|
|
69
89
|
end
|
70
90
|
end
|
71
91
|
|
72
|
-
attr_reader :path
|
73
|
-
def initialize(path)
|
92
|
+
attr_reader :path, :in_progress
|
93
|
+
def initialize(path, in_progress = false)
|
74
94
|
@path = path
|
95
|
+
@in_progress = in_progress
|
75
96
|
end
|
76
97
|
|
77
98
|
def name
|
78
|
-
@name ||= path.basename.to_s
|
99
|
+
@name ||= in_progress ? "#{path.dirname.basename}/#{path.basename}" : path.basename.to_s
|
79
100
|
end
|
80
101
|
|
81
102
|
def started_at
|
@@ -95,11 +116,15 @@ class Tms::Backup
|
|
95
116
|
}.each do |name, attr|
|
96
117
|
class_eval <<-src
|
97
118
|
def #{name}
|
98
|
-
@#{name} ||= xattr.get('#{attr}').to_i
|
119
|
+
@#{name} ||= xattr.get('#{attr}').to_i rescue '-'
|
99
120
|
end
|
100
121
|
src
|
101
122
|
end
|
102
123
|
|
124
|
+
def <=>(other)
|
125
|
+
name <=> other.name
|
126
|
+
end
|
127
|
+
|
103
128
|
private
|
104
129
|
|
105
130
|
def xattr
|
data/tms.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{tms}
|
8
|
-
s.version = "1.0
|
8
|
+
s.version = "1.1.0"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Boba Fat"]
|
12
|
-
s.date = %q{2010-11-
|
12
|
+
s.date = %q{2010-11-20}
|
13
13
|
s.default_executable = %q{tms}
|
14
14
|
s.description = %q{View avaliable Time Machine backups and show diff}
|
15
15
|
s.executables = ["tms"]
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 19
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
|
-
- 0
|
9
8
|
- 1
|
10
|
-
|
9
|
+
- 0
|
10
|
+
version: 1.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Boba Fat
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-11-
|
18
|
+
date: 2010-11-20 00:00:00 +03:00
|
19
19
|
default_executable: tms
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|