Class: Snapsync::SyncAll
- Inherits:
-
Object
- Object
- Snapsync::SyncAll
- Defined in:
- lib/snapsync/sync_all.rb
Overview
Synchronizes all snapshots to a directory
A snapshot will be synchronized if (1) the target directory has a subdirectory of the config’s name and (2) this directory is not disabled through its config file
Instance Attribute Summary collapse
-
#config_dir ⇒ Object
readonly
The path to the directory containing snapper configuration files.
-
#target_dir ⇒ Object
readonly
The path to the root directory to which we should sync.
Instance Method Summary collapse
-
#autoclean? ⇒ Boolean?
Whether the target should be forced to autoclean(true), force to not run cleanup (false) or use their own config file to decide (nil).
-
#each_target ⇒ Object
Enumerate the targets available under #target_dir.
-
#initialize(target_dir, config_dir: Pathname.new('/etc/snapper/configs'), autoclean: nil) ⇒ SyncAll
constructor
Creates a sync-all operation for the given target directory.
- #run ⇒ Object
Constructor Details
#initialize(target_dir, config_dir: Pathname.new('/etc/snapper/configs'), autoclean: nil) ⇒ SyncAll
Creates a sync-all operation for the given target directory
20 21 22 23 24 |
# File 'lib/snapsync/sync_all.rb', line 20 def initialize(target_dir, config_dir: Pathname.new('/etc/snapper/configs'), autoclean: nil) @config_dir = config_dir @target_dir = target_dir @autoclean = autoclean end |
Instance Attribute Details
#config_dir ⇒ Object (readonly)
The path to the directory containing snapper configuration files
9 10 11 |
# File 'lib/snapsync/sync_all.rb', line 9 def config_dir @config_dir end |
#target_dir ⇒ Object (readonly)
The path to the root directory to which we should sync
11 12 13 |
# File 'lib/snapsync/sync_all.rb', line 11 def target_dir @target_dir end |
Instance Method Details
#autoclean? ⇒ Boolean?
Whether the target should be forced to autoclean(true), force to not run cleanup (false) or use their own config file to decide (nil)
The default is nil
32 33 34 |
# File 'lib/snapsync/sync_all.rb', line 32 def autoclean? @autoclean end |
#each_target ⇒ Object
Enumerate the targets available under #target_dir
37 38 39 40 41 42 43 44 45 46 |
# File 'lib/snapsync/sync_all.rb', line 37 def each_target SnapperConfig.each_in_dir(config_dir) do |config| dir = target_dir + config.name if !dir.exist? Snapsync.warn "no directory for configuration #{config.name} in #{target_dir}" else yield(LocalTarget.new(dir)) end end end |