ref: f90f03a2e03ae243a800e11d6e04a63781940b1f
parent: 90da74513cd68b04bb4b1d79d7521c4971c6882f
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Tue Oct 9 22:45:11 EDT 2018
hget: do a HEAD request to check if the file is already complete (thanks miscief) when we continue a download, make sure the file isnt already complete, as otherwise the server might respond with a 416 as the range request will out of range.
--- a/rc/bin/hget
+++ b/rc/bin/hget
@@ -47,13 +47,24 @@
if(test -s $o)
s=`{ls -l $o | awk '{print $6}'}}
-if(! ~ $s 0)
- r=($r 'Range: bytes='^$s^'-')
<[3=0] <>/mnt/web/clone { d=/mnt/web/^`{sed 1q}if(~ $#b 1)
echo -n baseurl $b >[1=0]
echo -n url $1 >[1=0]
+ if(! ~ $s 0 && ~ $#p 0 && ~ $#P 0 && ~ $#m 0){+ for(i in $r)
+ echo -n headers $i >[1=0]
+ echo -n request HEAD >[1=0]
+ <$d/body {+ if(~ $s `{cat $d/contentlength >[2]/dev/null}) + exit ''
+ }
+ if(~ $#b 1)
+ echo -n baseurl $b >[1=0]
+ echo -n url $1 >[1=0]
+ r=($r 'Range: bytes='^$s^'-')
+ }
for(i in $r)
echo -n headers $i >[1=0]
if(~ $#m 1)
--
⑨