#!/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