aboutsummaryrefslogtreecommitdiff
path: root/sys/cmd/rc/rcmain.unix
diff options
context:
space:
mode:
authorNicholas Noll <nbnoll@eml.cc>2021-10-13 09:08:59 -0700
committerNicholas Noll <nbnoll@eml.cc>2021-10-13 09:08:59 -0700
commit2ade60747db41771498ab2b85ce6e3c3389f2c26 (patch)
tree302927100158a1b50954e5ca4cb5c564bf19beec /sys/cmd/rc/rcmain.unix
parentd1a19f0d477a6249d8af9322317b8434b86260ea (diff)
feat(rc): added unix port of rc with linenoise
Diffstat (limited to 'sys/cmd/rc/rcmain.unix')
-rw-r--r--sys/cmd/rc/rcmain.unix35
1 files changed, 35 insertions, 0 deletions
diff --git a/sys/cmd/rc/rcmain.unix b/sys/cmd/rc/rcmain.unix
new file mode 100644
index 0000000..42b3be4
--- /dev/null
+++ b/sys/cmd/rc/rcmain.unix
@@ -0,0 +1,35 @@
+# rcmain: unix version
+if(~ $#home 0) home=$HOME
+if(~ $#ifs 0) ifs='
+'
+profile=$home/.rcrc
+switch($#prompt){
+case 0
+ prompt=('% ' ' ')
+case 1
+ prompt=($prompt ' ')
+}
+if(~ $rcname ?.out) prompt=('broken! ' ' ')
+if(flag p) path=/bin
+if not {
+ finit
+ if(~ $#path 0) path=(. /bin /usr/bin /usr/local/bin)
+}
+fn sigexit
+if(! ~ $#cflag 0){
+ if(flag l && test -r $profile) . $profile
+ status=''
+ eval $cflag
+}
+if not if(flag i){
+ if(flag l && test -r $profile) . $profile
+ status=''
+ if(! ~ $#* 0) . $*
+ . -i /dev/fd/0
+}
+if not if(~ $#* 0) . /dev/fd/0
+if not{
+ status=''
+ . $*
+}
+exit $status