]> git.lizzy.rs Git - plan9front.git/blobdiff - rc/bin/hget
acid: fix dumptree() acid function to work in kernel debug, update malloc.acid and...
[plan9front.git] / rc / bin / hget
index 7b3223223a233006674cdcb112975abbbd442aa3..bb50a899b208ee9b5f68b3a95e97c07d7e6cdc8a 100755 (executable)
@@ -2,15 +2,17 @@
 rfork e
 argv0=$0
 fn usage {
-       echo usage: $argv0 [ -o file ] [ -p body ] [ -r header ] [ -m method ] [ -b baseurl ] url >[1=2]
+       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
@@ -19,9 +21,13 @@ while(~ $1 -*){
        case -p
                p=$2
                shift
+       case -P
+               P=1
        case -r
                r=($r $2)
                shift
+       case -l
+               l=1
        case -m
                m=$2
                shift
@@ -43,7 +49,7 @@ if(! ~ $#o 0){
 }
 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]
@@ -52,9 +58,19 @@ if(! ~ $s 0)
                echo -n headers $i >[1=0]
        if(~ $#m 1)
                echo -n request $m >[1=0]
-       if(! ~ $#p 0)
-               echo -n $"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}' \