From 6527f30e24e889810c9a895508dec0c9e6309076 Mon Sep 17 00:00:00 2001 From: Norbert Thiebaud Date: Fri, 16 Nov 2012 07:20:36 -0600 Subject: add a script to generate the source tarball post submodule To simplify things, we generate the source tarball with all the submodules included. so building from source should now be: wget the tarball and untar cd into the resulting directory ./autogen.sh + make Change-Id: Ie8e65a81309cf11728c5144c9001f7d96670f815 --- bin/lo-generate-source-tarball | 182 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100755 bin/lo-generate-source-tarball (limited to 'bin') diff --git a/bin/lo-generate-source-tarball b/bin/lo-generate-source-tarball new file mode 100755 index 000000000000..cbaace550d3d --- /dev/null +++ b/bin/lo-generate-source-tarball @@ -0,0 +1,182 @@ +#!/bin/env bash + +if [ -n "$debug" ] ; then +set -x +fi + +BIN_DIR=$(dirname "$0") +CORE_DIR=$(realpath "$BIN_DIR/..") +GEN_BZ2=false +GEN_MD5=false +GEN_XZ=false +OUT_DIR="${CORE_DIR?}" +VERSION= + +usage() +{ +cat < ] + [ --core-dir=.tar.[bz2|xz] + +EOF +} +while [ "${1}" != "" ]; do + parm=${1%%=*} + arg=${1#*=} + has_arg= + if [ "${1}" != "${parm?}" ] ; then + has_arg=1 + else + arg="" + fi +# echo "parm=!${parm}!" +# echo "arg=!${arg}!" + case "${parm}" in + -2|--bz2) + GEN_BZ2=true + ;; + -x|--xz) + GEN_XZ=true + ;; + -5|--md5) + GEN_MD5=true + ;; + -o|--output-dir) + if [ -z "${has_arg}" ] ; then + shift; + arg="$1" + fi + if [ -z "${arg}" ] ; then + echo "Missing argument for option $parm" 1>&2 + exit -1 + else + OUT_DIR="$arg" + fi + ;; + -v|--version) + if [ -z "${has_arg}" ] ; then + shift; + arg="$1" + fi + if [ -z "${arg}" ] ; then + echo "Missing argument for option $parm" 1>&2 + exit -1 + else + VERSION="$arg" + fi + ;; + -h|--help) + usage + exit 0 + ;; + -*) + echo "Invalid option $1" 1>&2 + exit -1 + ;; + *) + if [ -z "${LABEL}" ] ; then + LABEL="$parm" + else + echo "Too many arguments.. $@" 1>&2 + exit -1 + fi + ;; + esac + shift +done + +# we need a label +if [ -z "${LABEL}" ] ; then + echo "Missing argument. we need a git label as source" 1>&2 + exit 1 +fi + +# default to xz compression +if ! ${GEN_BZ2?} && ! ${GEN_XZ?} ; then + GEN_XZ=true +fi + +# --version= is mandatory +if [ -z "${VERSION}" ] ; then + VERSION="${LABEL?}" +fi + +base_name="libreoffice-${VERSION}" + +# --output-dir default to core-dir +if [ -z "${OUT_DIR}" ] ; then + OUT_DIR="$CORE_DIR?}" +fi + +if [ ! -d "${CORE_DIR?}" ] ; then + echo "Core repo directory $CORE_DIR does not exist or is not a directory" 1>&2 + exit 1 +fi + +if [ ! -d "${CORE_DIR?}/.git" ] ; then + echo "Core repo $CORE_DIR is not a git repo" 1>&2 + exit 1 +fi + +if [ ! -d "${OUT_DIR?}" ] ; then + echo "Output directory $OUT_DIR does not exist or is not a directory" 1>&2 + exit 1 +fi + + +pushd "${CORE_DIR}" > /dev/null + + +echo "archiving core..." +git archive --format=tar --prefix="${base_name?}" -o "${OUT_DIR}/${base_name}.tar" ${LABEL?} + + +concatenate_list= +for module in dictionaries helcontent2 translations ; do + if [ ! -f ${module?}/.git ] ; then + echo "Warning: module $module is not present" 1>&2 + else + echo "archiving ${module?}..." + git archive --format=tar --prefix="${base_name?}/${module?}" -o "${OUT_DIR}/${base_name}-${module?}.tar" ${LABEL?} + concatenate_list="${concatenate_list?} ${OUT_DIR}/${base_name}-${module?}.tar" + fi +done + +if [ -n "${concatenate_list?}" ] ; then + tar --concatenate --file="${OUT_DIR}/${base_name}.tar" ${concatenate_list?} + rm ${concatenate_list?} +fi + +if ${GEN_BZ2?} ; then + echo "bzip2 compression..." + bzip2 -fkz "${OUT_DIR}/${base_name}.tar" + if ${GEN_MD5?} ; then + echo "md5sum..." + md5sum "${OUT_DIR}/${base_name}.tar.bz2" > "${OUT_DIR}/${base_name}.tar.bz2.md5" + fi +fi + +if ${GEN_XZ?} ; then + echo "xz compression..." + xz -fz "${OUT_DIR}/${base_name}.tar" + if ${GEN_MD5?} ; then + echo "md5sum..." + md5sum "${OUT_DIR}/${base_name}.tar.xz" > "${OUT_DIR}/${base_name}.tar.zx.md5" + fi +else + rm "${OUT_DIR}/${base_name}.tar" +fi + +echo "Done." -- cgit