aboutsummaryrefslogtreecommitdiffstats
path: root/examples/functions/coshell.bash
diff options
context:
space:
mode:
Diffstat (limited to 'examples/functions/coshell.bash')
-rw-r--r--examples/functions/coshell.bash127
1 files changed, 0 insertions, 127 deletions
diff --git a/examples/functions/coshell.bash b/examples/functions/coshell.bash
deleted file mode 100644
index dc177b3..0000000
--- a/examples/functions/coshell.bash
+++ /dev/null
@@ -1,127 +0,0 @@
-# vi:set sts=2 sw=2 ai:
-#
-# coshell.bash - Control shell coprocesses (see coprocess.bash).
-#
-
-function coshell ()
-{
- while (( $# > 0 )) ; do
- case "$1" in
- #
- # coshell open
- #
- o|op|ope|open)
- shift
- coprocess open "$@"
- local ret=$?
-
- # This should eat any ssh error messages or what not.
- coshell eval : >/dev/null 2>&1
- return $ret
- ;;
-
- #
- # coshell close
- #
- c|cl|clo|close)
- shift
- coprocess close "$@"
- return $?
- ;;
-
- #
- # coshell eval
- #
- e|ev|eva|eval)
- shift
- local cookie=$RANDOM
- if (( $# == 0 )) ; then
- echo "coshell eval: no argumentsl" >&2
- return 1
- fi
- if [ x$coprocess_pid = x ] ; then
- echo "coshell eval: no active coshell" >&2
- return 1
- fi
-
- coprocess print "$@"
- coprocess print "coprocess_rc=\$?"
- coprocess print "printf 'coprocess-$cookie----\n%d\n' \$coprocess_rc"
- if [ x$coprocess_pid = x ] ; then
- return 0
- fi
-
- local ol
- while coprocess read ol ; do
- case "$ol" in
- *coprocess-$cookie----*)
- ol="${ol%coprocess-$cookie----}"
- echo -n "$ol"
- break
- ;;
- esac
- echo "$ol"
- done
- coprocess read ol
- return $ol
- ;;
-
- #
- # coshell sendfile
- #
- s|se|sen|send|sendf|sendfi|sendfil|sendfile)
- shift
- if (( $# != 2 )) ; then
- echo "coshell sendfile: syntax is 'coshell sendfile SRC TARGET'" >&2
- return 1
- fi
- if [ x$coprocess_pid = x ] ; then
- echo "coshell sendfile: no active coshell" >&2
- return 1
- fi
-
- local target=$2
- if coshell test -d "$target" ; then
- target="$target/${1##*/}"
- fi
-
- coprocess print "uudecode <<END_OF_FILE"
- uuencode -m "$target" <$1 |coprocess print --stdin
- coshell eval "END_OF_FILE"
- return $?
- ;;
-
- #
- # coshell getfile
- #
- g|ge|get|getf|getfi|getfil|getfile)
- shift
- if (( $# != 2 )) ; then
- echo "coshell getfile: syntax is 'coshell getfile SRC TARGET'" >&2
- return 1
- fi
- if [ x$coprocess_pid = x ] ; then
- echo "coshell getfile: no active coshell" >&2
- return 1
- fi
-
- local target=$2
- if test -d "$target" ; then
- target="$target/${1##*/}"
- fi
-
- coshell eval uuencode -m "$target" "<" "$1" |uudecode
- return $?
- ;;
-
- *)
- coshell eval "$@"
- return $?
- ;;
- esac
- shift
- done
- coprocess status
- return $?
-}
-