summaryrefslogtreecommitdiffstats
path: root/create_all_tarballs
blob: a4564f07cf1c0a48ec16fb1b25692ff45f7c8acb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#!/bin/bash

# Set the current target version
export TARGET=${TARGET:-"14.0.0"}

# When $SUFFIX = true then the package tarball name will be $package-trinity.
# When $SUFFIX != true then the package tarball name will be trinity-$package.
# Choose the option that satisfies any distro package name rules.
export SUFFIX=${SUFFIX:-"true"}

# Setting base path for tarballs. Tarballs for indivitual modules
# will be created into folders in same structure, as is in 'tde'.
# The default is 'tde-tarballs' in parent directory.
TARBALLS_BASE=${TARBALLS_BASE:-"$(dirname $PWD)/tde-tarballs/$TARGET"}

# List of modules to be omitted during creating tarballs.
SKIP_MODULES="
common
defaultsettins
experimental
infrastructure
metapackages
scripts
tde-construct
thirdparty
"
skip_module() {
  for skip in $SKIP_MODULES; do
    [ "/${1/$skip//}/" != "/$1/" ] && return 0
  done
  return 1
}

# Check git-dir
if [[ ! -e .git ]] ||
   [[ -z "`git rev-parse --git-dir 2>/dev/null`" ]]; then
        echo "This script can only be run from a top level git directory.  Exiting..."
        exit 1
fi

# Check remote branch
branch=`git branch --contains HEAD | grep -v "no branch" | head -n1 | cut -c 3-`
if [[ -z "$branch" ]] ||
   [[ -z "`git rev-parse --symbolic-full-name --remotes=\"*/$branch\"`" ]]; then
        echo "There is not active upstream branch.  Exiting..."
        exit 1
fi

# Create tarballs for submodules
if [[ -e .gitmodules ]]; then
    create_tarball=$(dirname $(readlink -f "$0"))/create_tarball
    sed -n "s|^\[submodule \"\([^\"]*\)\"\]$|\1|p" <.gitmodules | \
    while read submodule; do
        skip_module "$submodule" && continue
        if [[ ! -e "$submodule/.git" ]]; then
            git submodule init -- "$submodule"
            git submodule update -- "$submodule"
        fi
        export TARBALL_DIR=$TARBALLS_BASE/$(dirname "$submodule")
        if [[ ! -d "$TARBALL_DIR" ]]; then
            mkdir -p "$TARBALL_DIR"
        fi
        (cd "$submodule" && "$create_tarball")
    done
fi