Class: SimpleSync
- Inherits:
-
Object
- Object
- SimpleSync
- Defined in:
- lib/simple_sync/simple_sync.rb
Instance Attribute Summary collapse
-
#config_list ⇒ Object
readonly
Returns the value of attribute config_list.
Instance Method Summary collapse
- #copy_to_destination ⇒ Object
-
#initialize(config_file = nil) ⇒ SimpleSync
constructor
A new instance of SimpleSync.
- #load_config ⇒ Object
- #read_config_from_file ⇒ Object
Constructor Details
#initialize(config_file = nil) ⇒ SimpleSync
Returns a new instance of SimpleSync.
7 8 9 10 |
# File 'lib/simple_sync/simple_sync.rb', line 7 def initialize(config_file = nil) @config_file = config_file.nil? ? '.simple_sync' : config_file @config_list = {} end |
Instance Attribute Details
#config_list ⇒ Object (readonly)
Returns the value of attribute config_list.
6 7 8 |
# File 'lib/simple_sync/simple_sync.rb', line 6 def config_list @config_list end |
Instance Method Details
#copy_to_destination ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/simple_sync/simple_sync.rb', line 35 def copy_to_destination output = [] @config_list[:configurations].each { |config| config[:config][:sources].each { |source| #puts "Synching from #{source} to #{@config[:destination]}..." #puts "rsync #{config[:config][:rsync]} --itemize-changes #{source} #{config[:config][:destination]} #{config[:config][:rsync_suffix]} " output << IO.popen("rsync #{config[:config][:rsync]} --itemize-changes #{source} #{config[:config][:destination]} #{config[:config][:rsync_suffix]} ").read } } { status: 'success', message: output }.to_json end |
#load_config ⇒ Object
28 29 30 31 32 33 |
# File 'lib/simple_sync/simple_sync.rb', line 28 def load_config configuration = read_config_from_file() return configuration if configuration[:status] == 'error' @config_list = JSON.parse(configuration[:config], symbolize_names: true) return { status: 'success' } end |
#read_config_from_file ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
# File 'lib/simple_sync/simple_sync.rb', line 12 def read_config_from_file if File.exists?(@config_file) #puts "opening file #{@config_file}" config = File.open(@config_file).read elsif File.exists?(File.join(Dir.home, @config_file)) config = File.open(File.join(Dir.home, @config_file)).read #puts "opening file #{File.join(Dir.home, @config_file)}" else #puts "opening environment #{ENV['BACKUP_SYNC']}" return { status: 'error ', message: "could not find configuration file #{@config_file}" } unless ENV['BACKUP_SYNC'] return { status: 'error ', message: "could not find configuration file #{@config_file}" } unless File.exists?(ENV['BACKUP_SYNC']) config = File.open(ENV['BACKUP_SYNC']).read end { status: 'success', config: config } end |