[packages/rpm-build-tools] builder: use multiple mirror file search locations
glen
glen at pld-linux.org
Sun Nov 1 20:15:16 CET 2015
commit 236af16ba628f36484ea445c842f13dcbd19a2b6
Author: Elan Ruusamäe <glen at delfi.ee>
Date: Sun Nov 1 21:11:55 2015 +0200
builder: use multiple mirror file search locations
builder.sh | 22 ++++++++++++++--------
1 file changed, 14 insertions(+), 8 deletions(-)
---
diff --git a/builder.sh b/builder.sh
index 90e1b93..df16b00 100755
--- a/builder.sh
+++ b/builder.sh
@@ -1033,15 +1033,22 @@ get_spec() {
set_spec_target
}
+# find mirrors in this order. first match wins:
+# - package dir (~/rpm/packages/foo)
+# - repository dir (~/rpm/packages)
+# - tools dir dir (~/rpm/packages/rpm-build-tools)
find_mirror() {
- cd "$REPO_DIR"
local url="$1"
- if [ ! -f "mirrors" ] ; then
- ln -s ../rpm-build-tools/mirrors .
- fi
- IFS="|"
+ update_shell_title "find_mirror[$url][$REPO_DIR]"
+
+ # NOTE: as while loop runs in subshell,
+ # we use exit 2 to indicate that the match was found
+ # otherwise we end up outputing mirror url and origin url.
+
local origin mirror name rest ol prefix
+ IFS="|"
+ cat "$PACKAGE_DIR/mirrors" "$REPO_DIR/mirrors" "$REPO_DIR/../rpm-build-tools/mirrors" /dev/null 2>/dev/null | \
while read origin mirror name rest; do
# skip comments and empty lines
if [ -z "$origin" ] || [ "${origin#\#}" != "$origin" ]; then
@@ -1052,10 +1059,9 @@ find_mirror() {
if [ "$prefix" = "$origin" ] ; then
suffix=$(echo "$url" | cut -b $((ol+1))-)
echo -n "$mirror$suffix"
- return 0
+ exit 2
fi
- done < mirrors
- echo "$url"
+ done && echo "$url"
}
# Warning: unpredictable results if same URL used twice
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/rpm-build-tools.git/commitdiff/6c40c5a2249732089f5bb9646ff52112c766384a
More information about the pld-cvs-commit
mailing list