dreamback 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
@@ -58,6 +58,7 @@ module Dreamback
58
58
 
59
59
  # This uses a hack where we sync an empty directory to remove files
60
60
  # We do this because sftp has no recursive delete method
61
+ # @params [Array[String]] list of backup directories
61
62
  def self.rsync_delete(directories)
62
63
  empty_dir_path = File.expand_path("../.dreamback_empty_dir", __FILE__)
63
64
  empty_dir = Dir.mkdir(empty_dir_path) unless File.exists?(empty_dir_path)
@@ -77,6 +78,9 @@ module Dreamback
77
78
  # @param [String] name of the most recent backup folder prior to starting this run to link against
78
79
  def self.rsync_backup(link_dir)
79
80
  tmp_dir_path = "~/.dreamback_tmp"
81
+ user_exclusions_path = File.expand_path("~/.dreamback_exclusions")
82
+ default_exclusions_path = File.expand_path("../exclusions.txt", __FILE__)
83
+ exclusions_path = File.exists?(user_exclusions_path) ? user_exclusions_path : default_exclusions_path
80
84
  begin
81
85
  backup_server_user = Dreamback.settings[:backup_server_user]
82
86
  backup_server = Dreamback.settings[:backup_server]
@@ -88,7 +92,7 @@ module Dreamback
88
92
  # rsync won't do remote<->remote syncing, so we stage everything here first
89
93
  tmp_dir = File.expand_path(tmp_dir_path)
90
94
  Dir.mkdir(tmp_dir) unless File.exists?(tmp_dir)
91
- `rsync -e ssh -av --keep-dirlinks --copy-links #{user}@#{server}:~/ #{tmp_dir}/#{user}@#{server}`
95
+ `rsync -e ssh -av --keep-dirlinks --exclude-from #{exclusions_path} --copy-links #{user}@#{server}:~/ #{tmp_dir}/#{user}@#{server}`
92
96
  # Now we can sync local to remote. Only use link-dest if a previous folder to link to exists.
93
97
  link_dest = link_dir.nil? ? "" : "--link-dest=~#{BACKUP_FOLDER.gsub(".", "")}/#{link_dir}"
94
98
  `rsync -e ssh -av --delete --copy-links --keep-dirlinks #{link_dest} #{tmp_dir}/ #{backup_server_user}@#{backup_server}:#{BACKUP_FOLDER}/dreamback.#{today}`
@@ -7,7 +7,7 @@ command :setup do |c|
7
7
  c.syntax = 'dreamback start [options]'
8
8
  c.summary = 'This will guide you through setting up Dreamback'
9
9
  c.action do |args, options|
10
- Dreamback::Initializer.setup
10
+ Dreamback::Initializer.setup(true)
11
11
  end
12
12
  end
13
13
 
@@ -25,7 +25,7 @@ module Dreamback
25
25
  @settings = {}
26
26
 
27
27
  # Walks a user through the initial setup process
28
- def self.setup
28
+ def self.setup(direct = false)
29
29
  # Check to see if settings exist
30
30
  load_settings(SETTINGS_LOCATION)
31
31
 
@@ -34,7 +34,9 @@ module Dreamback
34
34
  create_new_settings
35
35
  save_settings(SETTINGS_LOCATION)
36
36
  else
37
- say(bold("You have already setup Dreamback. Please run \"dreamback backup\" to start a backup."))
37
+ if direct
38
+ say(bold("You have already setup Dreamback. Please run \"dreamback backup\" to start a backup."))
39
+ end
38
40
  end
39
41
 
40
42
  # Create ssh keys if they don't exist
@@ -1,3 +1,3 @@
1
1
  module Dreamback
2
- VERSION = "0.0.3"
2
+ VERSION = "0.0.4"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dreamback
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 3
10
- version: 0.0.3
9
+ - 4
10
+ version: 0.0.4
11
11
  platform: ruby
12
12
  authors:
13
13
  - Paul R Alexander
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-05-23 00:00:00 -07:00
18
+ date: 2012-05-30 00:00:00 -07:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency