#!/usr/bin/perl
# Creates frameworks with optional source from a directory maven/jar files.
# usage: cd
&& jartoframework.pl
@jars = split("\n", join("", `ls -1 *.jar`));
# warning: our american friends might find themself in guantanamo for this
$bundlesToJad = "JavaFoundation/JavaEOAccess/JavaEOControl/JavaWebObjects/JavaWebServicesClient/JavaWebServicesGeneration/JavaWebServicesSupport/JavaDirectToWeb";
foreach $jar (@jars) {
if($jar =~ /(\w+)\-.*?\.jar/) {
my ($bundle) = ($1);
my ($jarName, $frameworkName) = (lc($bundle . ".jar"), $bundle . ".framework");
warn("Processing: $bundle\n");
`mkdir -p $frameworkName/Resources/Java && cd $frameworkName/Resources/Java && jar xvf ../../../$jar && rm META-INF/INDEX.LIST`;
if(-e "$frameworkName/Resources/Java/Resources") {
`mv $frameworkName/Resources/Java/Resources/* $frameworkName/Resources && rm -Rf $frameworkName/Resources/Java/Resources`;
}
if(-e "$frameworkName/Resources/Java/WebServerResources") {
`mv $frameworkName/Resources/Java/WebServerResources $frameworkName/ && rm -Rf $frameworkName/Resources/Java/WebServerResources`;
}
`cd $frameworkName/Resources/Java/ $framework && jar cvf ../$jarName *`;
if($bundlesToJad =~ /$bundle/) {
`cd $frameworkName/Resources/Java && mkdir ../Sources && find . -name \\*.class |xargs jad -d ../Sources -lnc -o -r -s java -ff -nonlb`;
}
`rm -Rf $frameworkName/Resources/Java/* && mv $frameworkName/Resources/$jarName $frameworkName/Resources/Java/$jarName`;
if(-e "$frameworkName/Resources/Sources") {
`cd $frameworkName/Resources/Sources/ && jar cvf ../Java/src.jar *`;
}
}
}