class NetworkClipboard::Config

Constants

DEFAULTS

Attributes

client_id[R]
multicast_ip[R]
port[R]
secret[R]

Public Class Methods

new(filename='~/.networkclipboard.conf') click to toggle source
# File lib/network_clipboard/config.rb, line 19
def initialize(filename='~/.networkclipboard.conf')
  filename = File.expand_path(filename)
  begin
    parsed = YAML.load(File.read(filename))
  rescue Errno::ENOENT
    parsed = {}
  end
  config = DEFAULTS.merge(parsed)

  secret_filename = File.expand_path(config[:secret_file])
  begin
    @secret = [File.read(secret_filename)].pack('H*')
  rescue Errno::ENOENT
    @secret = SecureRandom.random_bytes(32)
    File.open(secret_filename,'w',0400){|f|f.write(secret.unpack('H*')[0])}
  end

  @multicast_ip = config[:multicast_ip]
  @port = config[:port]
  @client_id = SecureRandom.uuid.gsub('-','')
end