Managing a custom site with Perl

You can use a Perl script to manage your custom sites. You can create or delete sites, as well as adding and removing readers, writers, and owners of the site. Run the program without input to see the allowed arguments:

Usage: 
CustomSiteManager.pl <CreateSite>   <dsn> <username> <password> <pvk file> 
                     <sitename>
CustomSiteManager.pl <DeleteSite>   <dsn> <username> <password> <pvk file> 
                     <sitename>
CustomSiteManager.pl <AddWriter>    <dsn> <username> <password> <pvk file> 
                     <sitename> <writername>
CustomSiteManager.pl <RemoveWriter> <dsn> <username> <password> <pvk file> 
                     <sitename> <writername>
CustomSiteManager.pl <AddOwner>     <dsn> <username> <password> <pvk file> 
                     <sitename> <ownername>
CustomSiteManager.pl <RemoveOwner>  <dsn> <username> <password> <pvk file> 
                     <sitename> <ownername>
CustomSiteManager.pl <AddReader>    <dsn> <username> <password> <pvk file> 
                     <sitename> <readername>
CustomSiteManager.pl <RemoveReader> <dsn> <username> <password> <pvk file> 
                     <sitename> <readername>

This is the Perl script:

# CustomSiteManager.pl

use strict;
use FindBin;
use lib $FindBin::Bin;
use BESAPI;

if ( @ARGV == 0 )
{
      Usage();
      exit( 0 );
}

my ( $server,  $username, $password, $sitename, $subject ) 
 = ( $ARGV[1], $ARGV[2],  $ARGV[3],  $ARGV[4],  $ARGV[5] );

my $customSiteManager = BESAPI->new( "CustomSiteManager", $server );

if ( $ARGV[0] =~ /CreateSite/i )
{
      $customSiteManager->CreateCustomSite( $sitename, $username, $password );
}
elsif ( $ARGV[0] =~ /DeleteSite/i )
{
      $customSiteManager->DeleteCustomSite( $sitename, $username, $password );
}
elsif ( $ARGV[0] =~ /AddWriter/i )
{
      $customSiteManager->AddCustomSiteWriter( $sitename, $subject, $username, 
        $password );
}
elsif ( $ARGV[0] =~ /RemoveWriter/i )
{
      $customSiteManager->RemoveCustomSiteWriter( $sitename, $subject, $username, 
        $password );
}
elsif ( $ARGV[0] =~ /AddOwner/i )
{
      $customSiteManager->AddCustomSiteOwner( $sitename, $subject, $username, 
        $password );
}
elsif ( $ARGV[0] =~ /RemoveOwner/i )
{
      $customSiteManager->RemoveCustomSiteOwner( $sitename, $subject, $username, 
        $password );
}
elsif ( $ARGV[0] =~ /AddReader/i )
{
      $customSiteManager->AddCustomSiteReader( $sitename, $subject, $username, 
        $password );
}
elsif ( $ARGV[0] =~ /RemoveReader/i )
{
      $customSiteManager->RemoveCustomSiteReader( $sitename, $subject, $username, 
        $password );
}
else
{
      Usage();
}

sub Usage
{
      print "Usage:\n";
      print File::Basename::basename( $0 ) . " <CreateSite>   <server> <username> 
       <password> <sitename>\n";
      print File::Basename::basename( $0 ) . " <DeleteSite>   <server> <username> 
       <password> <sitename>\n\n";
      print File::Basename::basename( $0 ) . " <AddWriter>    <server> <username> 
       <password> <sitename> <writername>\n";
      print File::Basename::basename( $0 ) . " <RemoveWriter> <server> <username> 
       <password> <sitename> <writername>\n\n";
      print File::Basename::basename( $0 ) . " <AddOwner>     <server> <username> 
       <password> <sitename> <ownername>\n";
      print File::Basename::basename( $0 ) . " <RemoveOwner>  <server> <username> 
       <password> <sitename> <ownername>\n\n";
      print File::Basename::basename( $0 ) . " <AddReader>    <server> <username> 
       <password> <sitename> <readername>\n";
      print File::Basename::basename( $0 ) . " <RemoveReader> <server> <username> 
       <password> <sitename> <readername>\n";
}