| #!/usr/local/plan9/bin/rc |
| |
| if(! ~ $#* 2){ |
| echo usage: netisdir system path >[1=2] |
| exit usage |
| } |
| |
| f=dostat |
| ns=`{namespace} |
| if(u test -S $ns/$1) |
| f=$f^9p |
| |
| t=/tmp/netisdir.$pid.$USER |
| fn sigexit { rm -f $t } |
| |
| fn dostat { |
| { |
| echo !echo XXX connected |
| echo cd $2 |
| echo !echo XXX directory exists |
| } | sftp -b - $1 >$t >[2=1] |
| if(9 grep -s XXX.directory.exists $t){ |
| echo directory |
| exit 0 |
| } |
| if(9 grep -s 'is not a directory' $t){ |
| echo file |
| exit 0 |
| } |
| cat $t | sed 's/sftp> //g; /^$/d; /XXX/d; /^cd /d' >[1=2] |
| if(! 9 grep -s XXX.connected $t){ |
| echo connect failed |
| exit 0 |
| } |
| echo nonexistent |
| exit 0 |
| } |
| |
| fn dostat9p { |
| if(! 9p ls -ld $1/$2 >$t >[2]/dev/null){ |
| echo nonexistent |
| exit 0 |
| } |
| if(9 grep -s '^d' $t){ |
| echo directory |
| exit 0 |
| } |
| echo file |
| exit 0 |
| } |
| |
| $f $1 $2 |