#!/bin/rc
+rfork e
argv0=$0
fn usage {
- echo usage: $argv0 [ -o file ] [ -p body ] [ -r header ] [ -m method ] [ -b baseurl ] url >[2=1]
+ echo usage: $argv0 '[ -l | -o file] [ -p body | -P ] [ -r header ] [ -m method ] [ -b baseurl ] url' >[1=2]
exit usage
}
s=0
o=()
p=()
+P=()
r=()
m=()
b=()
+l=()
while(~ $1 -*){
switch($1){
case -o
case -p
p=$2
shift
+ case -P
+ P=1
case -r
r=($r $2)
shift
+ case -l
+ l=1
case -m
m=$2
shift
}
if(! ~ $s 0)
r=($r 'Range: bytes='^$s^'-')
-<>/mnt/web/clone {
+<[3=0] <>/mnt/web/clone {
d=/mnt/web/^`{sed 1q}
if(~ $#b 1)
echo -n baseurl $b >[1=0]
echo -n headers $i >[1=0]
if(~ $#m 1)
echo -n request $m >[1=0]
- if(~ $#p 1)
- cat <$p >$d/postbody
+ if(! ~ $#p 0 || ! ~ $#P 0){
+ >$d/postbody {
+ if(! ~ $#p 0)
+ echo -n $"p
+ if(! ~ $#P 0)
+ cat <[0=3]
+ }
+ }
<$d/body {
+ if(~ $#l 1){
+ echo `{cat $d/parsed/url}
+ exit
+ }
if(~ $#o 1){
l=`{cat $d/contentlength >[2]/dev/null}
x=`{awk 'BEGIN{FS=" |-"}/^bytes ([0-9]+)\-/{print $2}' \