chiark / gitweb /
Mirroring: Tolerate missing .a file when tidying mirror
[dgit.git] / infra / dgit-mirror-rsync
index 5b54d16cc0f9a1cdbf0be5251d1943b5f5d3d535..2858047b57f85307085c1df13f0448d69e29473e 100755 (executable)
@@ -37,6 +37,13 @@ fail () {
 if [ $# -lt 2 ]; then fail "too few arguments"; fi
 
 self=$0
 if [ $# -lt 2 ]; then fail "too few arguments"; fi
 
 self=$0
+
+case "$self" in
+/*)                            ;;
+*/*)   self="$PWD/$self"       ;;
+*)                             ;;
+esac
+
 distrodir=$1;  shift
 action=$1;     shift
 package=$1
 distrodir=$1;  shift
 action=$1;     shift
 package=$1
@@ -79,7 +86,7 @@ reinvoke () {
 
        exec                                                    \
        "$@"                                                    \
 
        exec                                                    \
        "$@"                                                    \
-       "$0"    "$distrodir" "reinvoke$newaction" "$package"
+       "$self" "$distrodir" "reinvoke$newaction" "$package"
 }
 
 check-package-mirrorable () {
 }
 
 check-package-mirrorable () {
@@ -100,7 +107,7 @@ lock-and-process () {
 attempt () {
        exec >"$queue/$package.err" 2>&1
        if actually; then
 attempt () {
        exec >"$queue/$package.err" 2>&1
        if actually; then
-               rm "$queue/$package.a"
+               rm -f "$queue/$package.a"
                mv -f "$queue/$package.err" "$queue/$package.log"
                rm "$queue/$package.lock"
        else
                mv -f "$queue/$package.err" "$queue/$package.log"
                rm "$queue/$package.lock"
        else