require 'digest/sha1'
require 'erb'

def site_keys_file
  File.join("config", "initializers", "site_keys.rb")
end

def secure_digest(*args)
  Digest::SHA1.hexdigest(args.flatten.join('--'))
end

def make_token
  secure_digest(Time.now, (1..10).map{ rand.to_s })
end

def make_site_keys_rb
  site_key = secure_digest(Time.now, (1..10).map{ rand.to_s })
  site_key_erb = <<-EOF
# key of 40 chars length
REST_AUTH_SITE_KEY         = '#{site_key}'
REST_AUTH_DIGEST_STRETCHES = 10
EOF
end

namespace :auth do
  namespace :gen do
    desc "Generates config/initializers/site_keys.rb"
    task :site_key do
      file = ENV['file'] || site_keys_file
      File.open(file, "w"){|f| f.write(make_site_keys_rb)}
    end
  end
end