-fetch_quilt()
-(
- url=$(get_field "$1" 4)
- url=${url%/} # strip trailing / if necessary
-
- if ! cd ../quilt; then
- printf 'Cannot chdir to ../quilt\n' 1>&2
- return
- fi
- if ! [ -d "$1" ] && ! mkdir "$1"; then
- printf 'Cannot create quilt directory for %s\n' "$1" 1>&2
- return
- fi
- if ! cd "$1"; then
- printf 'Cannot chdir to quilt directory for %s\n' "$1" 1>&2
- return
- fi
- if ! wget -N -nv --no-cache --no-xattr "$url/series"; then
- printf 'Wget of %s series file failed\n' "$1" 1>&2
- cd ..
- rm -rf "$1"
- git checkout "$1"
- return
- fi
- find . -type f | sed 's,^./,,;/^series$/d' | sort >.series.old
- if grep -q NEXT_PATCHES series; then
- sed -n '/NEXT_PATCHES_START/,/NEXT_PATCHES_END/p' series
- else
- cat series
- fi |
- sed -e 's/[ \t]*#.*$//' -e '/^[ \t]*$/d' |
- sort >.series.next
- if [ -s .series.next ]; then
- if ! wget -N -nv --no-cache --no-xattr -B "$url/" -i .series.next; then
- printf 'Wget of series %s failed\n' "$1" 1>&2
- cd ..
- rm -rf "$1"
- git checkout "$1"
- return
- fi
- fi
- comm -23 .series.old .series.next | xargs -r rm -f
- rm -f .series.old .series.next
-)
-