home *** CD-ROM | disk | FTP | other *** search
- #!/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 = 'ooc680-m7';
-
- 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
-