chiark / gitweb /
dot/shell-rc: Run `make' nicely by default.
[profile] / dot / mykermrc.in
index b02503aa3c5aa39e29fd14a1c2b66413b55d816c..029dd3a9db0ad6891eed550e2e10f2aefeebb8da 100644 (file)
@@ -6,6 +6,7 @@ assign _profile @profile@/
 assign _dot \v(home).kermit/
 
 ;; General stuff.
+set command recall-buffer-size 100
 set escape-character ^]
 set flow-control /direct-serial rts/cts
 set flow-control /modem rts/cts
@@ -14,6 +15,13 @@ set options directory /brief
 set terminal trigger KERMIT READY TO SERVE...
 set transfer pipes on
 
+;; Set the prompt string.
+def _host \fword(\v(host),1,.)
+def _pwd \freplace(\freplace(//\v(dir)/,//\v(home),~/),//,)
+local _hack
+asg _hack set prompt {C-Kermit \v(user)@\m(_host) \m(_pwd)>}
+do _hack
+
 ;; Dialling parameters.
 set dial country-code 44
 set dial area-code 1223
@@ -48,14 +56,12 @@ _set_dir dial -
 
 ;; If my terminal is UTF8 then try to use that consistently.  This may not
 ;; work, but in my world as it is it's quite likely to.
+set file character-set utf8
 local _lc_ctype
 if not def _lc_ctype if def \$(LC_ALL) assign _lc_ctype \$(LC_ALL)
 if not def _lc_ctype if def \$(LC_CTYPE) assign _lc_ctype \$(LC_CTYPE)
 if not def _lc_ctype if def \$(LANG) assign _lc_ctype \$(LANG)
-if match \m(_lc_ctype) *.utf8 {
-       set file character-set utf8
-       set terminal character-set utf8
-}
+if match \m(_lc_ctype) *.utf8 set terminal character-set utf8
 
 ;; Set the HTTP proxy from the environment.
 if def \$(http_proxy) {
@@ -90,7 +96,44 @@ def CONSOLE {
 }
 
 ;; Synchronize remote terminal size with local window.
-def syncwinsz output stty rows \v(rows) columns \v(cols)\13
+def SYNCWINSZ output stty rows \v(rows) columns \v(cols)\13
+
+;; Special cases for particular target hosts.
+def GUVNOR {
+       set key 127 \8
+       telnet guvnor.distorted.org.uk
+}
+def JUMPTS {
+       local pass
+       set host /network-type:pty ssh -enone -t \%1
+       while true {
+               input 15 \fpattern({{{password:,exit}}})
+               if fail end 1 failed to connect
+               if equal \v(inmatch) exit break
+               if equal \v(inmatch) password: {
+                       if ! def pass askq pass {password: }
+                       output \m(pass)\13
+               }
+       }
+}
+def FENDERCON {
+       set input echo off
+       jumpts mdw@ts-tfm8.jump.net.uk
+       output 1\13
+       set control prefixed 30
+       connect
+}
+def ARDUINO {
+       set terminal lf-display crlf
+       set line \%1
+       set speed 9600
+       set serial 8n1
+       set modem type none
+       set carrier-watch off
+       set clear-channel on
+       connect
+       set line
+}
 
 ;; Local configuration.
 if exist \m(_dot)config take \m(_dot)config