package Domain;
sub load { ... }
sub getAddress { ... }
#etc.
1
####
package DomainManager;
sub install {
my ($this, $domain) = @_;
# create user
# create files
# create db
# set up apache
# etc
return @results;
}
sub uninstall {
my ($this, $domain) = @_;
# remove user
# remove files
# remove db
# remove apache config
# etc
return @results;
}
1
##
##
package DomainManagerOutput;
sub new { ... }
sub isError { ... }
sub getText { ... }
1
##
##
#!/usr/bin/perl -T
use strict;
use warnings;
use Domain;
use DomainManager;
# Do authentication, authorization, etc.
my $domain = Domain->load(...);
my @results = DomainManager->install($domain);
print "Content-type: text/html\n\n";
print "";
for (@results) {
if ($_->isError) {
print "" . $_->getText . "
";
} else {
print "" . $_->getText . "
";
}
}
print "";
-----------------------------------------------------------
#!/usr/bin/perl
use strict;
use warnings;
use Domain;
use DomainManager;
# Parse command line, etc.
my $domain = Domain->load(...);
my @results = DomainManager->install($domain);
for (@results) {
if ($_->isError) {
print "[ERROR]" . $_->getText . "\n";
} else {
print "[ OK ]" . $_->getText . "\n";
}
}