diff options
author | Jesse Morgan <jesse@jesterpm.net> | 2015-01-17 23:20:10 -0800 |
---|---|---|
committer | Jesse Morgan <jesse@jesterpm.net> | 2015-01-17 23:20:10 -0800 |
commit | 0d7fe028ac21d9ec8fa6322f531b97eddaf9bfe0 (patch) | |
tree | b11df2444e4d6f68dd0188a437ba3429c63f1552 /Rakefile |
Initial commit for InsomniaIRC configs.
Diffstat (limited to 'Rakefile')
-rw-r--r-- | Rakefile | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Rakefile b/Rakefile new file mode 100644 index 0000000..42953db --- /dev/null +++ b/Rakefile @@ -0,0 +1,63 @@ +$:.push File.expand_path("../lib", __FILE__) + +require 'rake' +require 'insomniaircd_conf' + +INPUT = "config-src" +OUTPUT = "conf" + + +directory OUTPUT + +task :clean do + rm_rf OUTPUT +end + +task :compile, [:hostname] => [OUTPUT] do |t, args| + conf = InsomniaIRCDConf.new(args[:hostname], get_key) + + files = Rake::FileList["#{INPUT}/*"] + + files.each do |filename| + next if !File.file? filename + if filename =~ /.erb$/ + template = File.read("#{filename}") + File.open("#{OUTPUT}/" + File.basename(filename[0..-5]), "w") do |file| + file.puts conf.render_template(template) + end + elsif filename =~ /.encrypted$/ + + else + cp filename, "#{OUTPUT}/" + end + end +end + +namespace "secret" do + task :mkkey do + File.write("secure.key", InsomniaIRCDConf::Secure::random_key) + end + + task :encrypt, [:secret] do |t, args| + secure = InsomniaIRCDConf::Secure.new(get_key) + puts "Encryption result: " + secure.encrypt(args[:secret]) + end + + task :decrypt, [:secret] do |t, args| + secure = InsomniaIRCDConf::Secure.new(get_key) + puts "Decryption result: " + secure.decrypt(args[:secret]) + end +end + +def get_key + if ENV.has_key? "SECRET_KEY" + ENV["SECRET_KEY"] + else + if File.file? "secret.key" + File.read("secret.key") + else + raise "SECRET_KEY variable not set!" + end + end +end + |