On Windows, the script did not run correctly because of the "return"s. Here, we use "exit" instead. Also, there were many files with the same name but with different extensions in the output. Now, we only print out the names using grep, awk and sort utilities. In addition, a description for bin/run is added to bin/README.md Change-Id: Ifb106c89199ebc5a9debf6caef80bd1edf143b20 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138514 Tested-by: Jenkins Reviewed-by: Hossein <hossein@libreoffice.org>
110 lines
3.0 KiB
Bash
Executable File
110 lines
3.0 KiB
Bash
Executable File
#!/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/.
|
|
#
|
|
|
|
# simple wrapper script to run non-installed executables from workdir
|
|
|
|
print_usage()
|
|
{
|
|
echo "This utility can be used to run the executables in this folder:"
|
|
echo
|
|
echo " workdir/LinkTarget/Executable"
|
|
echo
|
|
echo "Usage:"
|
|
echo
|
|
echo " ./bin/run application [parameters]|--list|--help"
|
|
echo
|
|
echo "Use --list (same as -list or -l) to get the list of executables"
|
|
echo "Use --help (same as -help or -h) to get this help"
|
|
}
|
|
|
|
list_executables()
|
|
{
|
|
echo "Listing executables inside workdir/LinkTarget/Executable folder:"
|
|
find workdir/LinkTarget/Executable -executable -printf "%P\n" | grep -v batch | awk -F. {'print $1'} | sort -u
|
|
}
|
|
|
|
print_executable_name()
|
|
{
|
|
echo "Setting env variables and running workdir/LinkTarget/Executable/$1"
|
|
}
|
|
|
|
setdefaults()
|
|
{
|
|
dir=$(realpath "$(pwd)")
|
|
|
|
while test ! -d "${dir}/instdir/program" ; do
|
|
if test "${dir}" = "/"; then
|
|
echo "error: cannot find \"program\" dir from \"$(pwd)\""
|
|
exit 1
|
|
fi
|
|
dir=$(realpath "${dir}/..")
|
|
done
|
|
|
|
exedir="${dir}"/workdir/LinkTarget/Executable
|
|
export URE_BOOTSTRAP=file://"${dir}"/instdir/program/fundamentalrc
|
|
}
|
|
|
|
case "$1" in
|
|
""|"-h"|"-help"|"--help")
|
|
print_usage; exit 1;;
|
|
"-l"|"-list"|"--list")
|
|
list_executables; exit 0;;
|
|
*) print_executable_name $1;;
|
|
esac
|
|
|
|
if uname | grep -i CYGWIN >/dev/null; then
|
|
|
|
setdefaults
|
|
|
|
exedir=$(cygpath -m "${dir}"/workdir/LinkTarget/Executable)
|
|
export URE_BOOTSTRAP=file:///$(cygpath -m "${dir}")/instdir/program/fundamental.ini
|
|
export PATH=${PATH:+$PATH:}"${dir}"/instdir/program
|
|
SEARCH_PATH="${PATH}"
|
|
|
|
elif [ $(uname) = Darwin ]; then
|
|
|
|
dir=$(pwd)
|
|
|
|
# Get PRODUCTNAME from config_host.mk, LibreOffice or LibreOfficeDev
|
|
eval `grep 'export PRODUCTNAME=' config_host.mk`
|
|
|
|
if [ ! -d "${dir}/instdir/$PRODUCTNAME.app" ]; then
|
|
echo "error: cannot find \"instdir/$PRODUCTNAME.app\" dir in \"$(pwd)\""
|
|
exit 1
|
|
fi
|
|
|
|
exedir="$dir"/workdir/LinkTarget/Executable
|
|
export URE_BOOTSTRAP=file://"${dir}"/instdir/$PRODUCTNAME.app/Contents/Resources/fundamentalrc
|
|
export DYLD_LIBRARY_PATH=${DYLD_LIBRARY_PATH:+$DYLD_LIBRARY_PATH:}"${dir}"/instdir/$PRODUCTNAME.app/Contents/Frameworks
|
|
SEARCH_PATH="${DYLD_LIBRARY_PATH}"
|
|
|
|
elif [ $(uname) = Haiku ]; then
|
|
|
|
setdefaults
|
|
|
|
export LIBRARY_PATH=${LIBRARY_PATH:+$LIBRARY_PATH:}"${dir}"/instdir/program
|
|
SEARCH_PATH="${LIBRARY_PATH}"
|
|
|
|
else
|
|
|
|
setdefaults
|
|
|
|
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+$LD_LIBRARY_PATH:}"${dir}"/instdir/program
|
|
SEARCH_PATH="${LD_LIBRARY_PATH}"
|
|
|
|
fi
|
|
|
|
# echo "setting URE_BOOTSTRAP to: ${URE_BOOTSTRAP}"
|
|
# echo "setting search path to: ${SEARCH_PATH}"
|
|
# echo "execing: ${exedir}/$1"
|
|
|
|
exec ${LO_TRACE} "${exedir}/$@"
|
|
|
|
# vi:set shiftwidth=4 expandtab:
|