#!perl -w
use strict;
use File::Copy;
use File::Path;
use Cwd;
# this module copies the files from MOBY-Server/lib/*.pm that are required for MOBY-Client to create a distribution
use Data::Dumper;
my @MOBY = qw ( Async.pm CommonSubs.pm CrossReference.pm MobyXMLConstants.pm );
my @Async = qw ( LSAE.pm Service.pm SimpleServer.pm WSRF.pm );
my @Client = qw ( Central.pm CollectionArticle.pm OntologyServer.pm Registration.pm SecondaryArticle.pm Service.pm ServiceInstance.pm SimpleArticle.pm SimpleInput.pm MobyUnitTest.pm );
my @Exception = qw ( MobyException.pm MobyExceptionCodes.pm );
my @RDF = qw ( Utils.pm );
my @Parsers = qw ( ServiceTypeParser.pm NamespaceParser.pm DatatypeParser.pm ServiceParser.pm );
my @predicates = qw ( DC_PROTEGE.pm MOBY_PREDICATES.pm OMG_LSID.pm RDF.pm RDFS.pm FETA.pm OWL.pm );
# current working directory ...
my $dir = getcwd;
# the directory that files will be coming from, usually ../MOBY-Server/lib/
my $origin_directory = "$dir/../MOBY-Server/lib";
# the destination directory, usually ./lib/
my $destination_directory = "$dir/lib";
# directory structure for ../lib/
my @main_dirs = qw( MOBY MOBY/Async MOBY/Client MOBY/Client/Exception MOBY/RDF MOBY/RDF/Predicates MOBY/RDF/Parsers );
#create main directories as needed ...
foreach my $dir (@main_dirs) {
my @created = mkpath( ("$destination_directory/$dir") , {verbose => 1, mode => 0777} );
print "created $_\n" for @created;
}
# copy files into their respective directories ...
#populate MOBY directory
foreach my $file (@MOBY) {
my $subpath = "MOBY";
warn "couldn't copy file $file: $!\n" unless copy("$origin_directory/$subpath/$file","$destination_directory/$subpath/$file") == 1;
}
# copy files into Async dir
foreach my $file (@Async) {
my $subpath = "MOBY/Async";
warn "couldn't copy file $file: $!\n" unless copy("$origin_directory/$subpath/$file","$destination_directory/$subpath/$file") == 1;
}
# copy files into Client dir
foreach my $file (@Client) {
my $subpath = "MOBY/Client";
warn "couldn't copy file $file: $!\n" unless copy("$origin_directory/$subpath/$file","$destination_directory/$subpath/$file") == 1;
}
# copy files into Exception dir
foreach my $file (@Exception) {
my $subpath = "MOBY/Client/Exception";
warn "couldn't copy file $file: $!\n" unless copy("$origin_directory/$subpath/$file","$destination_directory/$subpath/$file") == 1;
}
# copy the RDF files
foreach my $file (@RDF) {
my $subpath = "MOBY/RDF";
warn "couldn't copy file $file: $!\n" unless copy("$origin_directory/$subpath/$file","$destination_directory/$subpath/$file") == 1;
}
# copy the Parsers files
foreach my $file (@Parsers) {
my $subpath = "MOBY/RDF/Parsers";
warn "couldn't copy file $file: $!\n" unless copy("$origin_directory/$subpath/$file","$destination_directory/$subpath/$file") == 1;
}
# copy the Predicates files
foreach my $file (@predicates) {
my $subpath = "MOBY/RDF/Predicates";
warn "couldn't copy file $file: $!\n" unless copy("$origin_directory/$subpath/$file","$destination_directory/$subpath/$file") == 1;
}
# Directory Structure is:
#
#./lib/
# +---MOBY
# ¦ CommonSubs.pm
# ¦ CrossReference.pm
# ¦ MobyXMLConstants.pm
# ¦
# +---Async
# ¦ LSAE.pm
# ¦ Service.pm
# ¦ SimpleServer.pm
# ¦ WSRF.pm
# ¦
# +---Client
# ¦ ¦ Central.pm
# ¦ ¦ CollectionArticle.pm
# ¦ ¦ OntologyServer.pm
# ¦ ¦ Registration.pm
# ¦ ¦ SecondaryArticle.pm
# ¦ ¦ Service.pm
# ¦ ¦ ServiceInstance.pm
# ¦ ¦ SimpleArticle.pm
# ¦ ¦ SimpleInput.pm
# ¦ ¦ MobyUnitTest.pm
# ¦ ¦
# ¦ +---Exception
# ¦ MobyException.pm
# ¦ MobyExceptionCodes.pm
# ¦
# +---RDF
# ¦ ¦ Utils.pm
# ¦ ¦
# ¦ +---Parsers
# ¦ ¦ ServiceTypeParser.pm
# ¦ ¦ NamespaceParser.pm
# ¦ ¦ ServiceParser.pm
# ¦ ¦ DatatypeParser.pm
# ¦ ¦
# ¦ +---Predicates
# ¦ DC_PROTEGE.pm
# ¦ FETA.pm
# ¦ MOBY_PREDICATES.pm
# ¦ OMG_LSID.pm
# ¦ OWL.pm
# ¦ RDF.pm
# ¦ RDFS.pm