blob: e8f15b33d24cc68ab96b8234fabb2100a892aaad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
require 'erb'
require 'ostruct'
require 'resolv'
require 'yaml'
require 'insomniaircd_conf/secure'
class InsomniaIRCDConf
def initialize(hostname, secret_key)
@secure = InsomniaIRCDConf::Secure.new(secret_key)
@hostname = hostname
@network = OpenStruct.new(YAML.load_file("network.yaml"))
raise ArgumentError, "No such server #{hostname}" unless @network.servers.has_key? hostname
@server = OpenStruct.new(@network.servers[hostname])
@opers = []
@network.opers.each do |oper|
oper["password"] = @secure.decrypt(oper["password"])
@opers << oper
end
end
def hostname
@hostname
end
def network
@network
end
def server
@server
end
def opers
@opers
end
def secret(key)
@secure.decrypt @network.secrets[key.to_s]
end
def render_template(input)
template = ERB.new(input)
template.result(binding)
end
end
|