47 lines
980 B
Bash
Executable File
47 lines
980 B
Bash
Executable File
#!/usr/bin/bash
|
|
set -eo pipefail
|
|
set -x
|
|
WORKDIR=${WORKDIR:-workdir}
|
|
MODULEYAML=$1
|
|
|
|
if [ ! -f "$MODULEYAML" ]; then
|
|
echo "Module yaml description $MODULEYAML not found"
|
|
exit -1
|
|
fi
|
|
|
|
if [ ! -d "$WORKDIR" ]; then
|
|
mkdir $WORKDIR
|
|
fi
|
|
|
|
module=$(yq e '.module' $MODULEYAML)
|
|
repo=$(yq e '.repo' $MODULEYAML)
|
|
branch=$(yq e '.branch' $MODULEYAML)
|
|
commit=$(yq e '.commit' $MODULEYAML)
|
|
makefile=$(yq e '.makefile' $MODULEYAML)
|
|
|
|
builddir="$WORKDIR/$module"
|
|
if [ $makefile != null ]; then
|
|
make_args=" -f $makefile"
|
|
fi
|
|
|
|
if [ -z "$commit" ]; then
|
|
echo "Error no tag or commit specified"
|
|
exit -1
|
|
fi
|
|
|
|
# branch can be omitted if it's a tag or commit on default branch
|
|
if [ ! -z "$branch" ]; then
|
|
branch_arg="-b $branch"
|
|
fi
|
|
|
|
if [ ! -d "${builddir}" ]; then
|
|
git clone $repo $builddir $branch_arg
|
|
else
|
|
git -C $builddir fetch origin $branch
|
|
git -C $builddir fetch --tags
|
|
git -C $builddir checkout $commit
|
|
fi
|
|
|
|
make -C $builddir $make_args $2 MODULE=$module ARCH_FILTER="RHEL8%"
|
|
|