def set_configuration(opts)
@options = DEFAULT_OPTIONS.clone
root = opts[:root] || @options[:root]
custom_config = if root
file = File.expand_path(File.join(root, 'config.yml'))
File.exists?(file) ? (YAML.load(IO.read(file)) || {}) : {}
else
{}
end
opts.delete(:identity) unless opts[:identity]
@options.update(custom_config.merge(opts))
@options[:file_root] ||= File.join(@options[:root], 'files')
@options[:log_path] = false
if @options[:daemonize]
@options[:log_path] = (@options[:log_dir] || @options[:root] || Dir.pwd)
end
return @identity = "nanite-#{@options[:identity]}" if @options[:identity]
token = Identity.generate
@identity = "nanite-#{token}"
File.open(File.expand_path(File.join(@options[:root], 'config.yml')), 'w') do |fd|
fd.write(YAML.dump(custom_config.merge(:identity => token)))
end
end