dotbackup 0.5.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/bin/dotbackup +96 -0
- metadata +63 -0
data/bin/dotbackup
ADDED
@@ -0,0 +1,96 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
dotbackup = File.expand_path("~/.backup")
|
4
|
+
dotbu = File.expand_path("~/.bu")
|
5
|
+
|
6
|
+
#Check for proper installation
|
7
|
+
begin
|
8
|
+
raise "Could not find `~/.backup`" if File.exist?(dotbackup) == false
|
9
|
+
rescue
|
10
|
+
puts "\"~/.backup\" was not found. Would you like to create it? [y/n]: "
|
11
|
+
case gets.strip
|
12
|
+
when 'y'
|
13
|
+
system "mkdir -p ~/.backup"
|
14
|
+
when 'n'
|
15
|
+
puts "dotbackup has been rendered unusable! Oh, no!"
|
16
|
+
exit 0
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
begin
|
21
|
+
raise "Could not find `~/.bu`" if File.exist?(dotbu) == false
|
22
|
+
rescue
|
23
|
+
puts "\"~/.bu\" was not found. Would you like to create it? [y/n]: "
|
24
|
+
case gets.strip
|
25
|
+
when 'y'
|
26
|
+
open(File.expand_path(dotbu), 'w') do |write|
|
27
|
+
write.puts "---"
|
28
|
+
write.puts "#Files and directories go here!"
|
29
|
+
write.puts "\#Examples:"
|
30
|
+
write.puts "\# - \"~/Pictures\""
|
31
|
+
write.puts "\# - \"~/Documents\""
|
32
|
+
write.puts "..."
|
33
|
+
end
|
34
|
+
puts "You will now have to specify what you want to back up ny editing #{dotbu}."
|
35
|
+
exit 0
|
36
|
+
when 'n'
|
37
|
+
puts "dotbackup has been rendered unusable! Oh, no!"
|
38
|
+
exit 0
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
42
|
+
require 'zlib'
|
43
|
+
require 'yaml'
|
44
|
+
require 'rubygems'
|
45
|
+
require 'archive/tar/minitar'
|
46
|
+
include Archive::Tar
|
47
|
+
|
48
|
+
time = Time.now.strftime("%Y.%m.%d %H.%M.%S").to_s
|
49
|
+
tarball = dotbackup + '/' + time + '.tar.gz'
|
50
|
+
files = []
|
51
|
+
|
52
|
+
#Declare colors. Thanks, Sam Soffes!
|
53
|
+
class String
|
54
|
+
def self.colorize(text, color_code)
|
55
|
+
"\e[#{color_code}m#{text}\e[0m"
|
56
|
+
end
|
57
|
+
|
58
|
+
def cyan
|
59
|
+
self.class.colorize(self, 36)
|
60
|
+
end
|
61
|
+
|
62
|
+
def green
|
63
|
+
self.class.colorize(self, 32)
|
64
|
+
end
|
65
|
+
end
|
66
|
+
|
67
|
+
#Read configuration
|
68
|
+
puts "Reading #{dotbu}...".green
|
69
|
+
items = YAML.load_file(dotbu)
|
70
|
+
|
71
|
+
begin
|
72
|
+
raise if items.nil? == true
|
73
|
+
rescue
|
74
|
+
puts "No items were specified in #{dotbu}."
|
75
|
+
exit 0
|
76
|
+
end
|
77
|
+
|
78
|
+
#Check items and create array
|
79
|
+
puts "Indexing files...".green
|
80
|
+
items.each do |item|
|
81
|
+
begin
|
82
|
+
raise "Specified item \"#{item}\" does not exist." if File.exist?(File.expand_path(item)) == false
|
83
|
+
rescue
|
84
|
+
puts "Specified item \"#{item}\" does not exist."
|
85
|
+
exit 0
|
86
|
+
end
|
87
|
+
files << File.expand_path(item)
|
88
|
+
end
|
89
|
+
|
90
|
+
#Back up!
|
91
|
+
puts "Backing up at #{tarball}...".green
|
92
|
+
output = Zlib::GzipWriter.new(File.open(tarball, 'wb'))
|
93
|
+
Minitar.pack(files, output)
|
94
|
+
|
95
|
+
#Finished!
|
96
|
+
puts "\nCreated backup at \"#{tarball}\".".cyan
|
metadata
ADDED
@@ -0,0 +1,63 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: dotbackup
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.5.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- dejay
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2012-07-31 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: archive-tar-minitar
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
description: dotbackup creates backup tarballs in ~/.backup. To specify files and
|
31
|
+
directories to back up, list them in ~/.bu.
|
32
|
+
email:
|
33
|
+
executables:
|
34
|
+
- dotbackup
|
35
|
+
extensions: []
|
36
|
+
extra_rdoc_files: []
|
37
|
+
files:
|
38
|
+
- bin/dotbackup
|
39
|
+
homepage: http://github.com/dejay/dotbackup
|
40
|
+
licenses: []
|
41
|
+
post_install_message:
|
42
|
+
rdoc_options: []
|
43
|
+
require_paths:
|
44
|
+
- lib
|
45
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
46
|
+
none: false
|
47
|
+
requirements:
|
48
|
+
- - ! '>='
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '0'
|
51
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ! '>='
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '0'
|
57
|
+
requirements: []
|
58
|
+
rubyforge_project:
|
59
|
+
rubygems_version: 1.8.24
|
60
|
+
signing_key:
|
61
|
+
specification_version: 3
|
62
|
+
summary: Back files up like an Olympian
|
63
|
+
test_files: []
|