#
# Generate a whimsy.local version of the deployed whimsy configuration
#
# Example usage:
#  ruby vhosttest.rb | ruby mkconf.rb /private/etc/apache2/other/whimsy.conf
#

require 'rbconfig'

if STDIN.tty?
  conf = `ssh whimsy.apache.org cat \
    /etc/apache2/sites-enabled/*-whimsy-vm-443.conf`
else
  conf = STDIN.read
end

conf.sub! 'VirtualHost *:443', 'VirtualHost *:80'
conf.sub! 'ServerName whimsy.apache.org', 'ServerName whimsy.local'

conf.gsub! 'ServerAlias', '## ServerAlias'

conf.gsub! /(\A|\n)\s*RemoteIPHeader.*/, ''

conf.gsub! /\n\s*PassengerDefault.*/, ''
conf.gsub! /\n\s*PassengerUser.*/, ''
conf.gsub! /\n\s*PassengerGroup.*/, ''

conf.gsub! /\n\s*SSL.*/, ''
conf.gsub! /\n\s*## SSL.*/, ''
conf.gsub! "SetEnv HTTPS", "# SetEnv HTTPS"

conf.gsub! '/x1/srv/whimsy', '/srv/whimsy'

conf.sub! /^SetEnv PATH .*/ do |line|
  line[/PATH\s+(\/.*?):/, 1] = '/usr/local/bin'

  line
end

conf.sub! 'wss://', 'ws://'

if ARGV.empty?
  puts conf
else
  ARGV.each do |arg|
    File.write arg, conf
  end
end
