dreamback 0.0.3 → 0.0.4

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.
@@ -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