Apache2-ASP
view release on metacpan or search on metacpan
sbin/asphelper view on Meta::CPAN
#!/usr/local/bin/perl -w
use strict;
use warnings 'all';
use Cwd 'cwd';
use DBI;
my $args = { };
$args->{domain} = prompt("What is the web application domain?", "www.example.com");
$args->{application_name} = prompt("Application name?", "MyApp");
$args->{mail_errors_to} = prompt("Email errors to?", 'you@domain.com');
$args->{mail_errors_from} = prompt("Email errors from?", 'root@localhost.com');
$args->{smtp_server} = prompt("SMTP Server?", 'localhost');
$args->{session_dsn} = prompt("Session DSN?", "DBI:mysql:dbname:localhost");
$args->{session_user} = prompt("Session db username?");
$args->{session_pass} = prompt("Session db password?");
$args->{session_cookie_domain} = prompt("Session cookie domain?", $args->{domain});
$args->{session_timeout} = prompt("Session timeout? (in minutes)", 30);
$args->{session_cookie_name} = prompt("Session cookie name?", 'session-id');
$args->{app_dsn} = prompt("Application DSN?", $args->{session_dsn});
$args->{app_user} = prompt("Application db username?", $args->{session_user});
$args->{app_pass} = prompt("Application db password?", $args->{session_pass});
$args->{main_dsn} = prompt("Main DSN?", $args->{session_dsn});
$args->{main_user} = prompt("Main db username?", $args->{session_user});
$args->{main_pass} = prompt("Main db password?", $args->{session_pass});
warn "="x79, "\n";
warn "Creating database tables...\n";
eval {
my $dbh = DBI->connect( $args->{session_dsn}, $args->{session_user}, $args->{session_pass} );
$dbh->do(q~
DROP TABLE IF EXISTS asp_sessions
~);
$dbh->do(q~
CREATE TABLE `asp_sessions` (
`session_id` char(32) NOT NULL,
`session_data` blob,
`created_on` datetime default NULL,
`modified_on` datetime default NULL,
PRIMARY KEY (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
~);
$dbh->disconnect();
1;
} or die $@;
eval {
my $dbh = DBI->connect( $args->{app_dsn}, $args->{app_user}, $args->{app_pass} );
$dbh->do(q~
DROP TABLE IF EXISTS asp_applications
~);
$dbh->do(q~
CREATE TABLE `asp_applications` (
`application_id` varchar(100) NOT NULL,
`application_data` blob,
PRIMARY KEY (`application_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
~);
$dbh->disconnect();
1;
} or die $@;
warn "="x79, "\n";
warn "Creating directory structure...\n";
mkdir($args->{domain}) or die "Cannot mkdir('$args->{domain}'): $!";
foreach my $dir (qw( lib etc conf htdocs handlers PAGE_CACHE MEDIA ))
{
mkdir("$args->{domain}/$dir") or die "Cannot mkdir('$args->{domain}'): $!";
}# end foreach()
open my $ofh, '>', "$args->{domain}/conf/apache2-asp-config.xml";
print $ofh <<"CONFIG_XML";
<?xml version="1.0" ?>
<configuration>
<system>
<post_processors>
<!--
<class>My::PostProcessor</class>
<class>My::PostProcessor2</class>
-->
</post_processors>
<libs>
sbin/asphelper view on Meta::CPAN
# Redirected?:
is( $res->header('location') => '/handlers/examples.contact' );
# Correct validation message?:
is(
$s->ua->context->session->{validation_errors}->{email} => $props->email->is_missing
);
}
# email - invalid:
{
local $data{email} = 'invalid-email';
my $res = $s->ua->post("/handlers/examples.contact", [
%data,
]);
# Redirected?:
is( $res->header('location') => '/handlers/examples.contact' );
# Correct validation message?:
is(
$s->ua->context->session->{validation_errors}->{email} => $props->email->is_invalid
);
}
# message:
{
local $data{message} = '';
my $res = $s->ua->post("/handlers/examples.contact", [
%data,
]);
# Redirected?:
is( $res->header('location') => '/handlers/examples.contact' );
# Correct validation message?:
is(
$s->ua->context->session->{validation_errors}->{message} => $props->message->is_missing
);
}
# And make sure everything works when we submit the form nicely:
{
$s->ua->get("/examples/contact.asp");
my $res = $s->ua->post("/handlers/examples.contact", [
%data,
]);
# No error messages:
is(
$s->ua->context->session->{validation_errors} => undef
);
}
TEST
close($t_ofh);
#==============================================================================
sub prompt
{
my ($q, $default) = @_;
local $| = 1;
my $answer;
if( defined($default) )
{
print "\n$q: [$default] ";
}
else
{
print "\n$q: ";
}# end if()
chomp($answer = <STDIN>);
return $default if defined($default) && ! length($answer);
until( length($answer) )
{
print "$q: ";
chomp($answer = <STDIN>);
}# end until()
return $answer;
}# end prompt()
( run in 0.818 second using v1.01-cache-2.11-cpan-6aa56a78535 )