f3b7dc649b
This makes bin/unpack-sources work on systems that do not have GNU coreutils in PATH, such as macOS. Change-Id: I54ed219eedf0f45c039edb6e486f3afe273dd51f Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107936 Tested-by: Jenkins Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
91 lines
2.3 KiB
Bash
Executable file
91 lines
2.3 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
#
|
|
# 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/.
|
|
#
|
|
|
|
usage()
|
|
{
|
|
echo "Helper script to unpack the LO source tarballs"
|
|
echo
|
|
echo "Usage: ${0##*/} [--help] start-dir tarball..."
|
|
echo
|
|
echo "Options:"
|
|
echo
|
|
echo " --help this help"
|
|
echo " start-dir path where the sources are unpacked (bootstrap directory)"
|
|
echo " tarball list of LO source tarball that need to be unpacked"
|
|
}
|
|
|
|
start_dir=
|
|
tarballs=
|
|
|
|
while test -n "$1" ; do
|
|
case "$1" in
|
|
--help)
|
|
usage
|
|
exit 0;
|
|
;;
|
|
--download)
|
|
download="yes"
|
|
;;
|
|
-*)
|
|
echo "Error: unknown option: $1"
|
|
exit 1;
|
|
;;
|
|
*)
|
|
if test -z "$start_dir" ; then
|
|
start_dir="$1"
|
|
else
|
|
tarballs="$tarballs $1"
|
|
fi
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|
|
if test -z "$start_dir" ; then
|
|
echo "Error: Please, define where to unpack sources, try --help"
|
|
fi
|
|
|
|
if ! test -f $start_dir/Repository.mk ; then
|
|
echo "Error: $start_dir is not a valid LibreOffice core source directory"
|
|
exit 1;
|
|
fi
|
|
|
|
if test ! -f $start_dir/sources.ver -o -d $start_dir/.git ; then
|
|
echo "Warning: sources are from git and not from tarball"
|
|
echo " Do nothing."
|
|
exit 0;
|
|
fi
|
|
|
|
lo_src_dir="$start_dir/src"
|
|
mkdir -p "$lo_src_dir"
|
|
|
|
for tarball in $tarballs ; do
|
|
tarname=`basename $tarball | sed -e "s/\.tar\..*//"`
|
|
if test -d $lo_src_dir/$tarname ; then
|
|
echo "Warning: $lo_src_dir/$tarname already exists => skipping"
|
|
continue;
|
|
fi
|
|
|
|
echo "Unpacking $tarname..."
|
|
echo mkdir -p "$lo_src_dir/$tarname"
|
|
if ! mkdir -p "$lo_src_dir/$tarname" ; then
|
|
echo "Error: could not create directory $lo_src_dir/$tarname"
|
|
fi
|
|
echo tar -xf "$tarball" -C "$lo_src_dir/$tarname" --strip-components=1
|
|
if ! tar -xf "$tarball" -C "$lo_src_dir/$tarname" --strip-components=1; then
|
|
echo "Error: could not unpack $tarname"
|
|
exit 1
|
|
fi
|
|
|
|
# create symlinks for module directories; ignore git-hooks directory
|
|
while read -r dir; do
|
|
ln -sf "src/${tarname}/$(basename "$dir")" "$start_dir"
|
|
done < <(find "$lo_src_dir/$tarname" -mindepth 1 -maxdepth 1 -type d -path $lo_src_dir/$tarname/git-hooks)
|
|
done
|