diff --git a/www/test/vhost-generator.cgi b/www/test/vhost-generator.cgi deleted file mode 100755 index 0b7262168f..0000000000 --- a/www/test/vhost-generator.cgi +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env ruby - -require 'wunderbar' - -# response to form requests -if ENV['REQUEST_METHOD'].to_s.upcase == 'POST' - cgi = CGI.new - cgi.out 'type' => 'text/plain' do - # extract parameters - hostname = cgi.params['hostname'].first - docroot = cgi.params['docroot'].first - https = cgi.params['https'].first - - # read live configuration - conf = File.read(Dir['/etc/apache2/sites-available/*whimsy*.conf'].first) - - # enable all interfaces - conf[//, 1] = '*' - - # replace hostname - conf[/ServerName (.*)/, 1] = hostname - - # don't override error or custom logs - conf[/()ErrorLog/, 1] = '# ' - conf[/()CustomLog/, 1] = '# ' - - # disable Passenger Default user and group (if present) - begin - conf[/()PassengerDefaultUser/, 1] = '# ' - rescue - end - begin - conf[/()PassengerDefaultGroup/, 1] = '# ' - rescue - end - - # global replace docroot - conf.gsub! '/srv/whimsy', docroot.chomp('/') - - # global replace docroot - conf.gsub! /SetEnv HTTPS .*/, "SetEnv HTTPS #{https}" - - conf - end - - exit 0 -end - -# form used for tailoring vhosts -_html do - _style %{ - label {width: 12em; float: left} - legend {background: #141; color: #DFD; padding: 0.4em} - fieldset {background: #EFE; width: 34em} - fieldset div {clear: both; padding: 0.4em 0 0 1.5em} - input,textarea {width: 3in} - select {width: 3.06in} - input[type=checkbox] {margin-left: 6em; width: 1em} - input[type=submit] {margin-top: 0.5em; margin-left: 3em; width: 8em} - - ul {padding: 0; display: flex; flex-wrap: wrap} - li {width: 10%; list-style-type: none; margin: 0 2em} - } - - _form method: 'post' do - _fieldset do - _legend 'Apache Whimsy vhost generator' - - _div_ do - _label 'Virtual host name', for: 'hostname' - _input id: 'hostname', name: 'hostname', required: true, - pattern: '^(?![0-9]+$)(?!-)[a-zA-Z0-9-]{,63}(?\|\"\'])+$', - value: '/srv/whimsy' - end - - _div_ do - _label 'HTTPS', for: 'https' - _select id: 'https', name: 'https' do - _option 'on' - _option 'off', selected: true - end - end - - _input type: 'submit', value: 'Submit' - end - - _h3 'Modules enabled' - _ul do - Dir['/etc/apache2/mods-enabled/*.load'].sort.each do |conf| - _li File.basename(conf, '.load') - end - end - end - - _script %{ - var inputs = Array.prototype.slice.call(document.querySelectorAll("input")); - var submit = document.querySelector("input[type=submit]"); - - // only enable submit button when all inputs are valid - inputs.forEach(function(input) { - input.addEventListener("input", function() { - if (inputs.some(function(input) { - return input.matches(":invalid") - })) { - submit.disabled = true - } else { - submit.disabled = false - } - }) - }) - } -end