90 строки
2.0 KiB
Perl
90 строки
2.0 KiB
Perl
#!/usr/bin/perl
|
|
|
|
#################################################################
|
|
# Rest of program
|
|
|
|
# get requirements from the same dir as the script
|
|
if ($^O ne "cygwin") {
|
|
# we'll be pulling in some stuff from the script directory
|
|
require FindBin;
|
|
import FindBin;
|
|
push @INC, $FindBin::Bin;
|
|
}
|
|
|
|
require GenerateManifest;
|
|
import GenerateManifest;
|
|
use Getopt::Long;
|
|
|
|
# Configuration
|
|
$win32 = 0;
|
|
$darwin = 0;
|
|
for ($^O) {
|
|
if (/((MS)?win32)|cygwin/i) {
|
|
$win32 = 1;
|
|
}
|
|
elsif (/darwin/i) {
|
|
$darwin = 1;
|
|
}
|
|
}
|
|
if ($win32) {
|
|
$moz = "$ENV{'MOZ_SRC'}/mozilla";
|
|
if ($ENV{'MOZ_DEBUG'}) {
|
|
$chrome = "$moz/dist/WIN32_D.OBJ/Embed/tmpchrome";
|
|
}
|
|
else
|
|
{
|
|
$chrome = "$moz/dist/WIN32_O.OBJ/Embed/tmpchrome";
|
|
}
|
|
}
|
|
else {
|
|
$moz = "~/mozilla";
|
|
$chrome = "$moz/dist/Embed/tmpchrome";
|
|
}
|
|
|
|
$verbose = 0;
|
|
$locale = "en-US";
|
|
$platform = "en-unix";
|
|
|
|
GetOptions('verbose!' => \$verbose,
|
|
'mozpath=s' => \$moz,
|
|
'manifest=s' => \$manifest,
|
|
'chrome=s' => \$chrome,
|
|
'locale=s' => \$locale,
|
|
'help' => \$showhelp);
|
|
|
|
if ($win32) {
|
|
# Fix those pesky backslashes
|
|
$moz =~ s/\\/\//g;
|
|
$chrome =~ s/\\/\//g;
|
|
$platform = "en-win";
|
|
}
|
|
elsif ($darwin) {
|
|
$platform = "en-mac"
|
|
}
|
|
|
|
if ($showhelp) {
|
|
print STDERR "Embedding manifest generator.\n",
|
|
"Usage:\n",
|
|
" -help Show this help.\n",
|
|
" -manifest <file> Specify the input manifest.\n",
|
|
" -mozpath <path> Specify the path to Mozilla.\n",
|
|
" -chrome <path> Specify the path to the chrome.\n",
|
|
" -locale <value> Specify the locale to use. (e.g. en-US)\n",
|
|
" -verbose Print extra information\n";
|
|
exit 1;
|
|
}
|
|
|
|
if ($manifest eq "") {
|
|
die("Error: No input manifest file was specified.\n");
|
|
}
|
|
|
|
if ($verbose) {
|
|
print STDERR "Mozilla path = \"$moz\"\n",
|
|
"Chrome path = \"$chrome\"\n",
|
|
"Manifest file = \"$manifest\"\n";
|
|
}
|
|
|
|
GenerateManifest($moz, $manifest, $chrome, $locale, $platform, *STDOUT, "/", $verbose);
|
|
|
|
exit 0;
|