summaryrefslogtreecommitdiff
path: root/rc/bin/ape
diff options
context:
space:
mode:
authorTaru Karttunen <taruti@taruti.net>2011-03-30 17:14:36 +0300
committerTaru Karttunen <taruti@taruti.net>2011-03-30 17:14:36 +0300
commit2959e1ede0ebc6fdffd7b8660f43c2ce14c9696f (patch)
treef6343b1ce11a8c87251dd27cf3d3e26b50693fa7 /rc/bin/ape
parente463eb40363ff4c68b1d903f4e0cdd0ac1c5977f (diff)
downloadplan9front-2959e1ede0ebc6fdffd7b8660f43c2ce14c9696f.tar.xz
Import sources from 2011-03-30 iso image - rc
Diffstat (limited to 'rc/bin/ape')
-rwxr-xr-xrc/bin/ape/ar8915
-rwxr-xr-xrc/bin/ape/c892
-rwxr-xr-xrc/bin/ape/cat18
-rwxr-xr-xrc/bin/ape/chown4
-rwxr-xr-xrc/bin/ape/dircp9
-rwxr-xr-xrc/bin/ape/egrep2
-rwxr-xr-xrc/bin/ape/false2
-rwxr-xr-xrc/bin/ape/fgrep2
-rwxr-xr-xrc/bin/ape/grep22
-rwxr-xr-xrc/bin/ape/install40
-rwxr-xr-xrc/bin/ape/ld6
-rwxr-xr-xrc/bin/ape/ln23
-rwxr-xr-xrc/bin/ape/ls59
-rwxr-xr-xrc/bin/ape/printf4
-rwxr-xr-xrc/bin/ape/psh10
-rwxr-xr-xrc/bin/ape/ranlib3
-rwxr-xr-xrc/bin/ape/rmdir2
-rwxr-xr-xrc/bin/ape/true2
-rwxr-xr-xrc/bin/ape/umask2
-rwxr-xr-xrc/bin/ape/yacc16
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 $*