diff options
author | Taru Karttunen <taruti@taruti.net> | 2011-03-30 17:14:36 +0300 |
---|---|---|
committer | Taru Karttunen <taruti@taruti.net> | 2011-03-30 17:14:36 +0300 |
commit | 2959e1ede0ebc6fdffd7b8660f43c2ce14c9696f (patch) | |
tree | f6343b1ce11a8c87251dd27cf3d3e26b50693fa7 /rc/bin/ape | |
parent | e463eb40363ff4c68b1d903f4e0cdd0ac1c5977f (diff) | |
download | plan9front-2959e1ede0ebc6fdffd7b8660f43c2ce14c9696f.tar.xz |
Import sources from 2011-03-30 iso image - rc
Diffstat (limited to 'rc/bin/ape')
-rwxr-xr-x | rc/bin/ape/ar89 | 15 | ||||
-rwxr-xr-x | rc/bin/ape/c89 | 2 | ||||
-rwxr-xr-x | rc/bin/ape/cat | 18 | ||||
-rwxr-xr-x | rc/bin/ape/chown | 4 | ||||
-rwxr-xr-x | rc/bin/ape/dircp | 9 | ||||
-rwxr-xr-x | rc/bin/ape/egrep | 2 | ||||
-rwxr-xr-x | rc/bin/ape/false | 2 | ||||
-rwxr-xr-x | rc/bin/ape/fgrep | 2 | ||||
-rwxr-xr-x | rc/bin/ape/grep | 22 | ||||
-rwxr-xr-x | rc/bin/ape/install | 40 | ||||
-rwxr-xr-x | rc/bin/ape/ld | 6 | ||||
-rwxr-xr-x | rc/bin/ape/ln | 23 | ||||
-rwxr-xr-x | rc/bin/ape/ls | 59 | ||||
-rwxr-xr-x | rc/bin/ape/printf | 4 | ||||
-rwxr-xr-x | rc/bin/ape/psh | 10 | ||||
-rwxr-xr-x | rc/bin/ape/ranlib | 3 | ||||
-rwxr-xr-x | rc/bin/ape/rmdir | 2 | ||||
-rwxr-xr-x | rc/bin/ape/true | 2 | ||||
-rwxr-xr-x | rc/bin/ape/umask | 2 | ||||
-rwxr-xr-x | rc/bin/ape/yacc | 16 |
20 files changed, 243 insertions, 0 deletions
diff --git a/rc/bin/ape/ar89 b/rc/bin/ape/ar89 new file mode 100755 index 000000000..7a0a97a08 --- /dev/null +++ b/rc/bin/ape/ar89 @@ -0,0 +1,15 @@ +#!/bin/rc + +flagfmt='c,d,p,r,t,u,v,x' +args='archive [files ...]' + +if(! ifs=() eval `{aux/getflags $*} || ~ $#* 0) { + aux/usage + exit usage +} + +key='' +for(i in c d p r t x u v) + if(f=flag$i ~ $#$f 1) + key=$key$i +exec /$cputype/bin/ar $key $* diff --git a/rc/bin/ape/c89 b/rc/bin/ape/c89 new file mode 100755 index 000000000..667acf1b8 --- /dev/null +++ b/rc/bin/ape/c89 @@ -0,0 +1,2 @@ +#!/bin/rc +exec /$cputype/bin/ape/cc $* diff --git a/rc/bin/ape/cat b/rc/bin/ape/cat new file mode 100755 index 000000000..be6de075b --- /dev/null +++ b/rc/bin/ape/cat @@ -0,0 +1,18 @@ +#!/bin/rc + +rfork e + +files=() +while(! ~ $#* 0){ + switch($1){ + case - + files=($files /fd/0) + case -* + ; + case * + files=($files $1) + } + shift +} + +exec /$cputype/bin/cat $files diff --git a/rc/bin/ape/chown b/rc/bin/ape/chown new file mode 100755 index 000000000..3b2c9ec83 --- /dev/null +++ b/rc/bin/ape/chown @@ -0,0 +1,4 @@ +#!/bin/rc + +echo 'Permission denied' +exit 1 diff --git a/rc/bin/ape/dircp b/rc/bin/ape/dircp new file mode 100755 index 000000000..a51daa51e --- /dev/null +++ b/rc/bin/ape/dircp @@ -0,0 +1,9 @@ +#!/bin/rc +# dircp src dest - copy a tree with ape's tar +switch($#*){ +case 2 + @{cd $1 && tar cf /fd/1 .} | @{cd $2 && tar xf /fd/0} +case * + echo usage: dircp from to >[1=2] + exit usage +} diff --git a/rc/bin/ape/egrep b/rc/bin/ape/egrep new file mode 100755 index 000000000..ffd1b2dc3 --- /dev/null +++ b/rc/bin/ape/egrep @@ -0,0 +1,2 @@ +#!/bin/rc +exec /rc/bin/ape/grep $* diff --git a/rc/bin/ape/false b/rc/bin/ape/false new file mode 100755 index 000000000..20dcd0486 --- /dev/null +++ b/rc/bin/ape/false @@ -0,0 +1,2 @@ +#!/bin/rc +exit 1 diff --git a/rc/bin/ape/fgrep b/rc/bin/ape/fgrep new file mode 100755 index 000000000..ffd1b2dc3 --- /dev/null +++ b/rc/bin/ape/fgrep @@ -0,0 +1,2 @@ +#!/bin/rc +exec /rc/bin/ape/grep $* diff --git a/rc/bin/ape/grep b/rc/bin/ape/grep new file mode 100755 index 000000000..a16f28bf8 --- /dev/null +++ b/rc/bin/ape/grep @@ -0,0 +1,22 @@ +#!/bin/rc + +rfork e + +opts=() +files=() +argv0=$0 +while(! ~ $#* 0){ + switch($1){ + case -[cefinsv] + opts=($opts $1) + case -q + opts=($opts -s) + case -* + echo $argv0 $1 not supported >[2=1] + exit 'not supported' + case * + files=($files $1) + } + shift +} +exec /$cputype/bin/grep $opts $files diff --git a/rc/bin/ape/install b/rc/bin/ape/install new file mode 100755 index 000000000..8d81bec1f --- /dev/null +++ b/rc/bin/ape/install @@ -0,0 +1,40 @@ +#!/bin/rc +# Usage: install [options] srcfile dstfile +# Usage: install srcfile dstfile owner group mode + +fn usage { + echo 'usage: install [-c|-m mode] srcfile dstfile' >[1=2] + exit 1 +} + +mode=775 +while(! ~ $#* 0){ + switch($1){ + case -c + ; + case -m + mode=$2 + shift + case -* + usage + case * + switch($#*) { + case 2 + ; + case 5 + mode=$5 # backward compatibility + case * + usage + } + srcfile=$1 + dstfile=$2 + if (! test -f $dstfile || ! cmp -s $srcfile $dstfile) { + cp $srcfile $dstfile + chmod $mode $dstfile + chmod g+w $dstfile + } + exit 0 + } + shift +} +usage diff --git a/rc/bin/ape/ld b/rc/bin/ape/ld new file mode 100755 index 000000000..fec20ec19 --- /dev/null +++ b/rc/bin/ape/ld @@ -0,0 +1,6 @@ +#!/bin/rc +# ld for ape, to keep configure happy + +O=`{sed -n 's/^O=//p' /$cputype/mkfile} + +$O^l $* diff --git a/rc/bin/ape/ln b/rc/bin/ape/ln new file mode 100755 index 000000000..bb5da4a44 --- /dev/null +++ b/rc/bin/ape/ln @@ -0,0 +1,23 @@ +#!/bin/rc + +argv0=$0 +force=n +while(! ~ $#* 0 && ~ $1 -*){ + switch($1){ + case -f + force=y + case -s + ; + case * + echo 'usage: ln [-s] [-f] source destination' >[2=1] + exit 'usage' + } + shift +} + +if(~ $force n && test -e $2){ + echo ln: $2 destination exists >[2=1] + exit 'usage' +} + +exec cp -gux $1 $2 diff --git a/rc/bin/ape/ls b/rc/bin/ape/ls new file mode 100755 index 000000000..eef7d0962 --- /dev/null +++ b/rc/bin/ape/ls @@ -0,0 +1,59 @@ +#!/bin/rc + +# flags common to GNU and BSD ls + +# -A all except . and .. +# -C force mc +# -F usual +# -H follow symlinks +# -L follow symlinks +# -R recursive list +# -U unsorted (gnu) +# +# -a include .files +# -c show ctime +# -d dirs +# -f no sorting +# -l long +# -p put slash after dir (-F) +# -r reverse +# -s sizes +# -t time sort +# -u utime +# -1 single-column + + +flagfmt='A,C,F,H,L,R,U,a,c,d,f,l,p,r,s,t,u,1' +args='[file ...]' + +if(! ifs=() eval `{aux/getflags $*}){ + aux/usage + exit usage +} + +fn fixlong { + echo total 1000 + /$cputype/bin/sed 's/^(.).(.........) . [0-9]+ /\1\2 1 /' +} + +post=cat + +all=() +# ignore -A +if(~ $flagC 1) post=mc +if(~ $flagF 1) all=($all -F) +# ignore -H, -L +# save -R for later +if(~ $flagU 1) all=($all -n) +# ignore -a, -c +if(~ $flagd 1) all=($all -d) +if(~ $flagf 1) all=($all -n) +if(~ $flagl 1) { all=($all -l); post=fixlong } +if(~ $flagp 1) all=($all -F) +if(~ $flagr 1) all=($all -r) +if(~ $flags 1) all=($all -s) +if(~ $flagt 1) all=($all -t) +if(~ $flagu 1) all=($all -u) +# ignore -1 + +/$cputype/bin/ls $all $* | $post diff --git a/rc/bin/ape/printf b/rc/bin/ape/printf new file mode 100755 index 000000000..b786c7032 --- /dev/null +++ b/rc/bin/ape/printf @@ -0,0 +1,4 @@ +#!/bin/rc + +# Here only for autoconf and friends. +echo -n $1 diff --git a/rc/bin/ape/psh b/rc/bin/ape/psh new file mode 100755 index 000000000..efb8b32d2 --- /dev/null +++ b/rc/bin/ape/psh @@ -0,0 +1,10 @@ +#!/bin/rc +# set up a shell running in an approximate POSIX 1003.2 environment +rfork en +fn sigterm{} +HOME=$home +bind -b /rc/bin/ape /bin +bind -b /$cputype/bin/ape /bin +if(test -d /$cputype/bin/pub) + bind -a /$cputype/bin/pub /bin +/bin/sh $* diff --git a/rc/bin/ape/ranlib b/rc/bin/ape/ranlib new file mode 100755 index 000000000..5065f0db8 --- /dev/null +++ b/rc/bin/ape/ranlib @@ -0,0 +1,3 @@ +#!/bin/rc + +exit 0 diff --git a/rc/bin/ape/rmdir b/rc/bin/ape/rmdir new file mode 100755 index 000000000..5d4d58a0b --- /dev/null +++ b/rc/bin/ape/rmdir @@ -0,0 +1,2 @@ +#!/bin/rc +rm $* diff --git a/rc/bin/ape/true b/rc/bin/ape/true new file mode 100755 index 000000000..3fb461ffc --- /dev/null +++ b/rc/bin/ape/true @@ -0,0 +1,2 @@ +#!/bin/rc +exit 0 diff --git a/rc/bin/ape/umask b/rc/bin/ape/umask new file mode 100755 index 000000000..8d1472ba9 --- /dev/null +++ b/rc/bin/ape/umask @@ -0,0 +1,2 @@ +#!/bin/rc +echo no umask in Plan 9 diff --git a/rc/bin/ape/yacc b/rc/bin/ape/yacc new file mode 100755 index 000000000..4186216ba --- /dev/null +++ b/rc/bin/ape/yacc @@ -0,0 +1,16 @@ +#!/bin/rc + +flagfmt='d,l,t,v,b stem' +args='grammar' + +if(! ifs=() eval `{aux/getflags $*} || ! ~ $#* 1){ + aux/usage + exit usage +} + +y=-S +if (~ $#flagb 1) y=($y -s $flagb) +if (~ $#flagd 1) y=($y -d) +if (~ $#flagt 1) y=($y -D2) +if (~ $#flagv 1) y=($y -v) +exec /$cputype/bin/yacc $y $* |