office-gobmx/bin/java-set-classpath.in

53 lines
2 KiB
Bash

#!/bin/sh
#
# This file is part of the LibreOffice project.
#
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# java-set-classpath - Utility to update the default
# CLASSPATH for LibreOffice
if test "z$1" = "z" ; then
echo "Update the default CLASSPATH for LibreOffice"
echo ""
echo "Usage: $0 [dir|jar]..."
echo ""
echo "The utility updates the LibreOffice system setting. It adds or removes"
echo "the given directories and jar-files to or from the default CLASSPATH"
echo "depending on if they are available on the system or not."
echo ""
echo "Parameters:"
echo " dir - absolute path to a directory"
echo " jar - absolute path to a jar-file"
exit 0;
fi
JVM_CONFIG_FILE=@INSTALLDIR@/program/fundamentalrc
for path in $@ ; do
if test "z${path%%/*}" != "z" ; then
echo "Warning: the path "$path" is not absolute and will be ignored"
continue
fi
if test -e $path ; then
# the file exist
grep "URE_MORE_JAVA_CLASSPATH_URLS.*file:/*$path\([[:space:]].*\)\?$" $JVM_CONFIG_FILE >/dev/null && continue
# it is not registered
TMP_FILE=`mktemp /tmp/ooset-java-class.XXXXXXXXXX` || exit 1
sed -e "s|^\(.*URE_MORE_JAVA_CLASSPATH_URLS.*\)$|\1 file://$path|" $JVM_CONFIG_FILE >$TMP_FILE
mv -f $TMP_FILE $JVM_CONFIG_FILE
chmod 644 $JVM_CONFIG_FILE
else
# the file does not exist, remove it from the configuration
TMP_FILE=`mktemp /tmp/ooset-java-class.XXXXXXXXXX` || exit 1;
sed -e "s|^\(.*URE_MORE_JAVA_CLASSPATH_URLS.*\)file:/*$path\([[:space:]].*\)\?$|\1\2|" \
-e "s/\(URE_MORE_JAVA_CLASSPATH_URLS=\)[[:space:]]\+/\1/" \
-e "/^.*URE_MORE_JAVA_CLASSPATH_URLS/s/[[:space:]]\+/ /g" \
-e "/^.*URE_MORE_JAVA_CLASSPATH_URLS/s/[[:space:]]*$//" $JVM_CONFIG_FILE >$TMP_FILE
mv -f $TMP_FILE $JVM_CONFIG_FILE
chmod 644 $JVM_CONFIG_FILE
fi
done