summaryrefslogtreecommitdiff
path: root/rc/bin
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@centraldogma>2011-11-24 00:04:36 +0100
committercinap_lenrek <cinap_lenrek@centraldogma>2011-11-24 00:04:36 +0100
commitca58f1df1755d3fdaa61bd3b6f3457b804ece7d7 (patch)
tree61c8e45e0a99531c89ed743864bfe66e2fdcba36 /rc/bin
parent776ac2e25d0dff09bc3becea409a0cdae9cde827 (diff)
parent67fe83b40f4d427d3abc5f52bc1509559ec04214 (diff)
merge
Diffstat (limited to 'rc/bin')
-rw-r--r--rc/bin/"25
-rw-r--r--rc/bin/""13
-rw-r--r--rc/bin/g23
3 files changed, 61 insertions, 0 deletions
diff --git a/rc/bin/" b/rc/bin/"
new file mode 100644
index 000000000..56bdaba77
--- /dev/null
+++ b/rc/bin/"
@@ -0,0 +1,25 @@
+#!/bin/rc
+
+rfork en
+
+if(test -r /mnt/acme/acme/body)
+ bind /mnt/acme/acme/body /dev/text
+
+PROMPT='[^ ]*%[ ]+'
+
+fn cmds {
+ grep '^'$PROMPT'[^"]' /dev/text | sed 's/^/ /'
+}
+
+switch($#*) {
+case 0
+ cmds | tail -1
+case *
+ cmds | grep '^ '$PROMPT^$"* | {echo; cat} |
+ pr -t -n | sort -nr | sort -u +1 | sort -n |
+ sed 's/^ *[0-9]+ //' | grep .
+}
+
+# the silly {echo; cat} gets around pr printing "empty file" when
+# presented with no input.
+
diff --git a/rc/bin/"" b/rc/bin/""
new file mode 100644
index 000000000..0db19cde5
--- /dev/null
+++ b/rc/bin/""
@@ -0,0 +1,13 @@
+#!/bin/rc
+
+PROMPT='[^ ]*%+[ ]+'
+
+_x = `{" $* | tail -1}
+if(~ $#_x 0) {
+ echo no such command found
+ exit notfound
+}
+
+echo ' ' $_x
+_x=`{ echo -n 'eval '; echo $_x | sed 's/^'$PROMPT'//'}
+rc -c $"_x
diff --git a/rc/bin/g b/rc/bin/g
new file mode 100644
index 000000000..e75da7310
--- /dev/null
+++ b/rc/bin/g
@@ -0,0 +1,23 @@
+#!/bin/rc
+
+flags=()
+while(! ~ $#* 1 && ~ $1 -* && ! ~ $1 --){
+ flags=($flags $1);
+ shift
+}
+if(~ $1 --)
+ shift
+
+switch($#*){
+case 0
+ echo 'usage: g [flags] pattern [files]' >[1=2]
+ exit usage
+case 1
+ pattern=$1
+ files=(`{ls *.[bcChm] *.cc *.py *.tex *.ms *.java >[2]/dev/null})
+case *
+ pattern=$1
+ shift
+ files=($*)
+}
+grep -n $flags -- $pattern $files /dev/null