#!/usr/bin/perl -w
#
# ooffice - Wrapper script for OpenOffice.org
#
# Define system installation directory
my $SystemInstallDir = '/usr/lib/openoffice';
# Suffix for parallel installable versioning
my $BinSuffix = '';
# ooo-build version
my $OOO_BUILDVERSION = '2.0.4';
if ($SystemInstallDir =~ /^@/) {
$SystemInstallDir = '/usr/lib/ooo-2.0';
$BinSuffix = '';
}
my $Binary = 'soffice';
if (-x "$SystemInstallDir/program/ooqstart") {
$Binary = 'ooqstart';
$ENV{OOO_EXTRA_ARG} ||= '';
}
my @ooo_argv;
my $widgets_set;
while ($ARGV[0]) {
$_ = shift;
if (m/^--widgets-set/) {
$widgets_set = shift;
(defined $widgets_set) || die "Error: The option --widgets-set requires a value\n" .
"For example: --widgets-set gtk\n";
} elsif (m/^--version/) {
print "This is OpenOffice.org built with ooo-build-$OOO_BUILDVERSION\n";
exit 0;
} elsif (m/^-(base|calc|draw|impress|math|web|writer)$/ && $Binary eq "ooqstart") {
$ENV{OOO_EXTRA_ARG} = $_;
} elsif (m/^-fromtemplate$/ && $Binary eq "ooqstart") {
$ENV{OOO_EXTRA_ARG} = "slot:5500";
} elsif (m/^system:\//) {
s/^system:/file:\/\//;
push @ooo_argv, $_;
} elsif (m/^system:/) {
use Cwd;
my $dir = getcwd;
s/^system:/file:\/\/$dir\//;
push @ooo_argv, $_;
} else {
push @ooo_argv, $_;
}
}
if (!@ooo_argv) {
my $arg;
if ($0 =~ m/\/oo(calc|draw|impress|math|web|writer|base)$BinSuffix$/) {
$arg = "-$1";
} elsif ($0 =~ m/\/oofromtemplate$BinSuffix$/) {
$arg = "slot:5500";
}
if ($arg) {
if ($Binary eq "soffice") {
push @ooo_argv, "$arg";
} else {
$ENV{OOO_EXTRA_ARG} = $arg;
}
}
}
if (defined $widgets_set) {
$ENV{SAL_USE_VCLPLUGIN} = $widgets_set;
}
# FIXME: the following two fixes should be done by OOo itself
# create the user config directory with safe rights 700 if it we find
# the right path and the directory does not exist
if (open BOOTSTRAPRC, "$SystemInstallDir/program/bootstraprc") {
while (my $line = <BOOTSTRAPRC>) {
chomp $line;
if (($line =~ m/^\s*UserInstallation\s*=\s*([^\s]*)\s*$/) && ($1)) {
my $userConfDir=$1;
$userConfDir =~ s|\$SYSUSERCONFIG|$ENV{HOME}|;
$userConfDir =~ s|file://||;
mkdir ($userConfDir,0700) unless (-d $userConfDir);
last;
}
}
close BOOTSTRAPRC;
}
# touch ~/.recently-used with safe rights 700 if it does not exist
if (! -f "$ENV{HOME}/.recently-used") {
open (RECENTLY_USED, ">$ENV{HOME}/.recently-used") &&
close RECENTLY_USED &&
chmod 0600, "$ENV{HOME}/.recently-used";
}
if (!(-f '/proc/version')) {
print STDERR "\n\n --- Warning - OO.o will not work without a mounted /proc filesystem --- \n\n\n";
}
if (defined $ENV{LANG}) {
if ($ENV{LANG} =~ /^th/) {
# turn off autohinting for thai (Ubuntu #35305).
$ENV{SAL_AUTOHINTING_PRIORITY} = "0";
}
}
# And here we go.
exec "$SystemInstallDir/program/$Binary", @ooo_argv