Permit cache-url to work with fifos.

This makes it easier to work with temporary files - less traps
scattered around higher layer code.

Change-Id: I2fdd93115a7b0d289c2e28f8c133d4059de75b87
This commit is contained in:
Robert Collins 2014-04-04 16:04:24 +13:00
parent 1877784d3b
commit 481f8de56a

View File

@ -24,8 +24,14 @@ url=$1
dest=$2 dest=$2
time_cond= time_cond=
mkdir -p $(dirname $dest) if [ -p $dest ]; then
tmp=$(mktemp $(dirname $dest)/.download.XXXXXXXX) type="fifo"
tmp=$(mktemp --tmpdir download.XXXXXXXX)
else
type="normal"
mkdir -p $(dirname $dest)
tmp=$(mktemp $(dirname $dest)/.download.XXXXXXXX)
fi
if [ -f $dest -a -s $dest ] ; then if [ -f $dest -a -s $dest ] ; then
time_cond="-z $dest" time_cond="-z $dest"
@ -44,8 +50,13 @@ if [ "$rcode" == "200" -o "${url:0:7}" == "file://" ] ; then
rm -f $tmp rm -f $tmp
else else
echo $success echo $success
if [ "fifo" = "$type" ]; then
cp $tmp $dest
rm $tmp
else
mv $tmp $dest mv $tmp $dest
fi fi
fi
# 213 is the response to a ftp MDTM command, curl outputs a 213 as the status # 213 is the response to a ftp MDTM command, curl outputs a 213 as the status
# if the url redirected to a ftp server and Not-Modified # if the url redirected to a ftp server and Not-Modified
elif [ "$rcode" = "304" -o "$rcode" = "213" ] ; then elif [ "$rcode" = "304" -o "$rcode" = "213" ] ; then