#!/bin/bash
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
# A library of functions shared by the various scripts in this directory.
# older packages.
LICENSE_PACKAGE_TS=20151208015500
+RAILS_PACKAGE_ITERATION=8
+
debug_echo () {
echo "$@" >"$STDOUT_IF_DEBUG"
}
deb_architecture="amd64"
if [[ "$pkgtype" =~ ^(python|python3)$ ]]; then
- rpm_architecture="all"
+ rpm_architecture="noarch"
deb_architecture="all"
fi
- # These packages have binary components
+ if [[ "$pkgtype" =~ ^(src)$ ]]; then
+ rpm_architecture="noarch"
+ deb_architecture="all"
+ fi
+
+ # These python packages have binary components
if [[ "$pkgname" =~ (ruamel|ciso|pycrypto|pyyaml) ]]; then
rpm_architecture="x86_64"
deb_architecture="amd64"
local complete_pkgname="$pkgname-$version-$iteration.$rpm_architecture.rpm"
fi
- if [[ -e "$complete_pkgname" ]]; then
+ # See if we can skip building the package, only if it already exists in the
+ # processed/ directory. If so, move it back to the packages directory to make
+ # sure it gets picked up by the test and/or upload steps.
+ if [[ -e "processed/$complete_pkgname" ]]; then
echo "Package $complete_pkgname exists, not rebuilding!"
+ mv processed/$complete_pkgname .
return 1
else
echo "Package $complete_pkgname not found, building"
FPM_EXIT_CODE=$?
fpm_verify $FPM_EXIT_CODE $FPM_RESULTS
+
+ # if something went wrong and debug is off, print out the fpm command that errored
+ if [[ 0 -ne $? ]] && [[ "$STDOUT_IF_DEBUG" == "/dev/null" ]]; then
+ echo -e "\n${COMMAND_ARR[@]}\n"
+ fi
}
# verify build results
if [[ "$FPM_PACKAGE_NAME" == "" ]]; then
EXITCODE=1
+ echo
echo "Error: $PACKAGE: Unable to figure out package name from fpm results:"
echo
echo $FPM_RESULTS
echo
+ return 1
elif [[ "$FPM_RESULTS" =~ "File already exists" ]]; then
echo "Package $FPM_PACKAGE_NAME exists, not rebuilding"
+ return 0
elif [[ 0 -ne "$FPM_EXIT_CODE" ]]; then
+ EXITCODE=1
echo "Error building package for $1:\n $FPM_RESULTS"
+ return 1
fi
}