autodist-repository: set return code as the number of import or release errors
This commit is contained in:
parent
ae9e5c3be5
commit
ed2de4963a
@ -41,7 +41,7 @@ function get_packages_from_last_build() {
|
||||
[ "$rep" ] || return
|
||||
[ -r $SRCPKGLIST ] || {
|
||||
echo "ERROR: srcpkglist file missing for $origrepository repository; aborting." >&2
|
||||
exit 1
|
||||
exit 200
|
||||
}
|
||||
tmpfile=`mktemp`
|
||||
packages=()
|
||||
@ -61,8 +61,8 @@ get_pkg_srcinfo() {
|
||||
|
||||
local rep pkg line
|
||||
|
||||
[ $1 ] && rep=$1 || exit 1
|
||||
[ $2 ] && pkg=$2 || exit 1
|
||||
[ $1 ] && rep=$1 || exit 200
|
||||
[ $2 ] && pkg=$2 || exit 200
|
||||
|
||||
unset pkg_archs pkg_name pkg_version pkg_release
|
||||
|
||||
@ -93,8 +93,8 @@ function get_pkg_buildinfo() {
|
||||
|
||||
local pkg i a
|
||||
|
||||
[ $1 ] && rep=$1 || exit 1
|
||||
[ $2 ] && buildarch=$2 || exit 1
|
||||
[ $1 ] && rep=$1 || exit 200
|
||||
[ $2 ] && buildarch=$2 || exit 200
|
||||
[ $3 ] && pkg=$3
|
||||
|
||||
pkg_archs=();
|
||||
@ -153,7 +153,7 @@ function get_pkg_buildinfo() {
|
||||
}
|
||||
|
||||
function import_file() {
|
||||
[ $1 ] || exit 1
|
||||
[ $1 ] || exit 200
|
||||
|
||||
local f import_mode
|
||||
f=$1
|
||||
@ -178,7 +178,7 @@ function import_file() {
|
||||
# if file exists in a local mirror use it by preference
|
||||
cp $ORIG_URL_LOCAL_ARCH/$f $DEST_URL_ARCH/ || {
|
||||
echo "ERROR: cannot move file $ORIG_URL_LOCAL_ARCH/$f to $DEST_URL_ARCH/$f; aborting." >&2
|
||||
exit 1
|
||||
exit 200
|
||||
}
|
||||
#chown ftp$DEST_REPOSITORY:users $DEST_URL_ARCH/$f
|
||||
eval curl -s -u${AUTODIST_REPOSITORIES_REMOTE_FTPUSER}:${AUTODIST_REPOSITORIES_REMOTE_FTPPASS} $ORIG_URL_ARCH $curl_delete_add >/dev/null && {
|
||||
@ -195,27 +195,27 @@ function import_file() {
|
||||
-o $DEST_URL_ARCH/$f $curl_delete_add || {
|
||||
echo
|
||||
echo "ERROR: cannot get file $ORIG_URL_ARCH/$f; aborting." >&2
|
||||
exit 1
|
||||
exit 200
|
||||
}
|
||||
fi
|
||||
else
|
||||
# remote -> remote
|
||||
echo "ERROR: remote to remote file import is not implemented yet; aborting." >&2
|
||||
exit 1
|
||||
exit 200
|
||||
fi
|
||||
else
|
||||
if [ "$DEST_MODE" = "local" ]; then
|
||||
# local -> local
|
||||
cp $ORIG_URL_ARCH/$f $DEST_URL_ARCH/ || {
|
||||
echo "ERROR: cannot copy file $ORIG_URL_ARCH/$f to $DEST_URL_ARCH/$f; aborting." >&2
|
||||
exit 1
|
||||
exit 200
|
||||
}
|
||||
#chown ftp$DEST_REPOSITORY:users $DEST_URL_ARCH/$f
|
||||
touch $DEST_URL_ARCH
|
||||
if [ "$import_mode" = "backup" ]; then
|
||||
rm -f $ORIG_URL_ARCH/$f || {
|
||||
echo "ERROR: cannot remove file $ORIG_URL_ARCH/$f; aborting." >&2
|
||||
exit 1
|
||||
exit 200
|
||||
}
|
||||
touch $ORIG_URL_ARCH
|
||||
fi
|
||||
@ -227,7 +227,7 @@ function import_file() {
|
||||
$DEST_URL_ARCH/ || {
|
||||
echo
|
||||
echo "ERROR: cannot send file $ORIG_URL_ARCH/$f; aborting." >&2
|
||||
exit 1
|
||||
exit 200
|
||||
}
|
||||
rm -f $ORIG_URL_ARCH/$f || {
|
||||
echo
|
||||
@ -251,7 +251,7 @@ function backup_local_file() {
|
||||
if [ "$simulate" != "1" ]; then
|
||||
mv $m $LOCAL_BACKUP/ || {
|
||||
echo "ERROR: can't move $m to $LOCAL_BACKUP; aborting." >&2
|
||||
exit 1
|
||||
exit 200
|
||||
}
|
||||
touch `dirname $m`
|
||||
fi
|
||||
@ -341,7 +341,7 @@ function restore_local_file() {
|
||||
if [ "$simulate" != "1" ]; then
|
||||
cp ${backupprefix}/$r $restoredest || {
|
||||
echo "ERROR: can't copy $p to $restoredest; aborting." >&2
|
||||
exit 1
|
||||
exit 200
|
||||
}
|
||||
touch $restoredest
|
||||
fi
|
||||
@ -414,7 +414,7 @@ function restore_package() {
|
||||
}
|
||||
|
||||
function import_package() {
|
||||
[ $1 ] || exit 1
|
||||
[ $1 ] || exit 200
|
||||
|
||||
local import_pkg import_mode
|
||||
|
||||
@ -440,7 +440,7 @@ function import_package() {
|
||||
if [ "$dest_ver-$dest_rel" != "$pkg_version-$pkg_release" ]; then
|
||||
[ "$a" == "$basearch" -a "$force" != "1" ] && {
|
||||
echo "ERROR: package $import_pkg for $a does not exist in $origrepository and can't merge due to different versions; skipping." >&2
|
||||
return 255
|
||||
return 254
|
||||
}
|
||||
if [ "$force" = "1" ]; then
|
||||
echo "WARNING: package $import_pkg for $a is missing in $origrepository but present in $destrepository." >&2
|
||||
@ -473,7 +473,7 @@ function import_package() {
|
||||
|
||||
[ $origpkgname ] || {
|
||||
echo "ERROR: package $import_pkg does not exist in $origrepository; aborting." >&2
|
||||
exit 1
|
||||
exit 200
|
||||
}
|
||||
|
||||
DEST_URL_ARCH=$DEST_URL/$destrepository/SRPMS.base/
|
||||
@ -555,7 +555,7 @@ function import_package() {
|
||||
|
||||
else # check_existence != 1
|
||||
echo "ERROR: $import_pkg reported by distromatic does no longer exist" >&2
|
||||
return 255
|
||||
return 253
|
||||
fi
|
||||
}
|
||||
|
||||
@ -608,7 +608,7 @@ function extract_diffinfo() {
|
||||
return 0
|
||||
}
|
||||
|
||||
[ $1 ] || { usage; exit 1; }
|
||||
[ $1 ] || { usage; exit 0; }
|
||||
|
||||
origrepository=
|
||||
destrepository=devel
|
||||
@ -668,7 +668,7 @@ while [ "$1" ]; do
|
||||
esac
|
||||
shift
|
||||
done
|
||||
[ "$command" = "" ] && { usage; exit 1; }
|
||||
[ "$command" = "" ] && { usage; exit 0; }
|
||||
|
||||
#[ "$command" = "list" ] && echo "Local repositories:"
|
||||
for a in ${AUTODIST_REPOSITORIES_LOCAL_REPS[*]}; do
|
||||
@ -708,11 +708,11 @@ done
|
||||
exit 0
|
||||
}
|
||||
|
||||
[ "$origrepository" ] || { usage; exit 1; }
|
||||
[ "$origrepository" ] || { usage; exit 200; }
|
||||
SRCPKGLIST="${LOCAL_REPS_BASE_DIR}/$origrepository/srcpkglist"
|
||||
|
||||
[ "$DEST_MODE" ] || { echo "ERROR: $destrepository is not a valid repository; aborting." >&2; exit 1; }
|
||||
[ "$ORIG_MODE" ] || { echo "ERROR: $origrepository is not a valid repository; aborting." >&2; exit 1; }
|
||||
[ "$DEST_MODE" ] || { echo "ERROR: $destrepository is not a valid repository; aborting." >&2; exit 200; }
|
||||
[ "$ORIG_MODE" ] || { echo "ERROR: $origrepository is not a valid repository; aborting." >&2; exit 200; }
|
||||
[ "$DEST_MODE" = "remote" ] && { echo "Waring: destination is a remote repository; this is an EXPERIMENTAL feature."; }
|
||||
|
||||
[ "$command" = "query" ] && {
|
||||
@ -986,7 +986,7 @@ DESTREGFILE=${LOCAL_REPS_BASE_DIR}/$destrepository/operations.log.html
|
||||
[ "$command" = "import" -o "$command" = "release" ] && {
|
||||
|
||||
[ "$origrepository" = "$destrepository" ] && {
|
||||
echo "ERROR: source and destination repository cannot be the same; aborting." >&2; exit 1; }
|
||||
echo "ERROR: source and destination repository cannot be the same; aborting." >&2; exit 200; }
|
||||
|
||||
if [ "$command" = "import" ]; then
|
||||
echo "Importing $1: $origrepository ($ORIG_MODE) => $destrepository ($DEST_MODE)"
|
||||
@ -1000,9 +1000,11 @@ DESTREGFILE=${LOCAL_REPS_BASE_DIR}/$destrepository/operations.log.html
|
||||
get_packages_from_last_build $origrepository
|
||||
fi
|
||||
|
||||
RET=0
|
||||
for i in ${packages[*]}; do
|
||||
import_package $i $backup_mode
|
||||
if [ $? -eq 255 -a "${AUTODIST_REPOSITORIES_TRANSITIONAL_REP}" -a \
|
||||
IMPORT_RET=$?
|
||||
if [ $IMPORT_RET -eq 255 -a "${AUTODIST_REPOSITORIES_TRANSITIONAL_REP}" -a \
|
||||
"${AUTODIST_REPOSITORIES_TRANSITIONAL_REP}" != "$destrepository" -a \
|
||||
"${AUTODIST_REPOSITORIES_TRANSITIONAL_REP}" != "$origrepository" -a \
|
||||
"${AUTODIST_REPOSITORIES_TRANSITIONAL_REP/-*}" = "${destrepository/-*}" ]; then
|
||||
@ -1010,11 +1012,15 @@ DESTREGFILE=${LOCAL_REPS_BASE_DIR}/$destrepository/operations.log.html
|
||||
destrepositorysave=$destrepository
|
||||
destrepository=${AUTODIST_REPOSITORIES_TRANSITIONAL_REP}
|
||||
import_package $i $backup_mode
|
||||
IMPORT_RET=$?
|
||||
destrepository=$destrepositorysave
|
||||
fi
|
||||
if [ $IMPORT_RET -ne 0 ]; then
|
||||
RET=`expr $RET + 1`
|
||||
fi
|
||||
done
|
||||
|
||||
exit 0
|
||||
exit $RET
|
||||
}
|
||||
|
||||
usage
|
||||
|
Loading…
Reference in New Issue
Block a user