84 lines
2.1 KiB
Bash
84 lines
2.1 KiB
Bash
#!/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 tarbals"
|
|
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 -a -f $start_dir/solenv/inc/target.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 tar -xf "$tarball" -C "$lo_src_dir"
|
|
tar -xf "$tarball" -C "$lo_src_dir"
|
|
|
|
# create symlinks for module directories; ignore git-hooks directory
|
|
for dir in `find "$lo_src_dir/$tarname" -mindepth 1 -maxdepth 1 -type d -path $lo_src_dir/$tarname/git-hooks -o -printf "$tarname/%f\n"` ; do
|
|
ln -sf "src/$dir" "$start_dir"
|
|
done
|
|
done
|