Class: SimpleSync

Inherits:
Object
  • Object
show all
Defined in:
lib/simple_sync/version.rb,
lib/simple_sync/simple_sync.rb

Constant Summary collapse

VERSION =
"0.1.0"

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config_file = nil) ⇒ SimpleSync

Returns a new instance of SimpleSync.



6
7
8
9
# File 'lib/simple_sync/simple_sync.rb', line 6

def initialize(config_file = nil)
  @config_file = config_file.nil? ? '.simple_sync' : config_file
  @config_list = {}
end

Instance Attribute Details

#config_listObject (readonly)

Returns the value of attribute config_list.



5
6
7
# File 'lib/simple_sync/simple_sync.rb', line 5

def config_list
  @config_list
end

Instance Method Details

#copy_to_destinationObject



34
35
36
37
38
39
40
41
42
43
44
45
46
47
# File 'lib/simple_sync/simple_sync.rb', line 34

def copy_to_destination
  output = []
  @config_list[:configurations].each { |config| 
    config[:config][:sources].each { |source| 
      reader,writer = IO.pipe
      IO.popen("rsync #{config[:config][:rsync]} --itemize-changes #{source} #{config[:config][:destination]} #{config[:config][:rsync_suffix]} "){ |output| 
        output.each do |line|
         puts line
        end 
      }
    }
  }
  { status: 'success'}
end

#load_configObject



27
28
29
30
31
32
# File 'lib/simple_sync/simple_sync.rb', line 27

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_fileObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/simple_sync/simple_sync.rb', line 11

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['SIMPLE_SYNC']}"
    return { status: 'error', message:  "could not find configuration file #{@config_file}" } unless ENV['SIMPLE_SYNC']
    return { status: 'error', message:  "could not find configuration file #{@config_file}" } unless File.exists?(ENV['SIMPLE_SYNC'])
    config = File.open(ENV['SIMPLE_SYNC']).read
  end
  { status: 'success', config: config }
end