scripts/build.sh
Rama main · réplica de lectura del repositorio original.
#!/usr/bin/env bash
set -e
CHANGE_ONLY="false"
GO_MOD_DIRS=$(find . -type f -name "go.mod" | xargs -n1 dirname)
print_usage() {
echo "Runs go build on all modules. Output is written to ./bin"
echo
echo "Syntax: ./build.sh [-c]"
echo "options:"
echo "c Build only on changed modules."
echo "h Print this Help."
echo
}
while getopts 'cp:' flag; do
case "${flag}" in
c) CHANGE_ONLY='true' ;;
*) print_usage
exit 1 ;;
esac
done
echo "Running go build with the following options:"
echo "CHANGE_ONLY: $CHANGE_ONLY"
echo "OUTPUT_DIR: $PWD/bin"
echo $@
for f in $GO_MOD_DIRS; do
if [ -d $f ]; then
BASEDIR=$PWD
cd $f
CHANGES=""
if [ "$CHANGE_ONLY" = "true" ]; then
CHANGES=$(git diff --name-only HEAD..origin/main ../)
if [ "$CHANGES" = "" ]; then
echo "No changes in $f, skipping."
cd -
continue
fi
fi
# rename cli -> cloudquery
bin_name=$(basename $f)
if [ "$bin_name" = "cli" ]; then
bin_name="cloudquery"
fi
echo "Running go build -o bin/$bin_name on $f"
go build -v -o $BASEDIR/bin/$bin_name .
cd -
fi
done