diff options
author | Chet Ramey <chet.ramey@case.edu> | 2014-02-25 20:36:50 -0500 |
---|---|---|
committer | Chet Ramey <chet.ramey@case.edu> | 2014-02-25 20:36:50 -0500 |
commit | 4539d736f1aff232857a854fd2a68df0c98d9f34 (patch) | |
tree | 841c9a36d28c9a4d61c1b2d79524ccbe5f5c5029 /examples/functions/coproc.bash | |
parent | f281b8f4f8936b2713966274d9f8508a9f0910e4 (diff) | |
download | android_external_bash-4539d736f1aff232857a854fd2a68df0c98d9f34.tar.gz android_external_bash-4539d736f1aff232857a854fd2a68df0c98d9f34.tar.bz2 android_external_bash-4539d736f1aff232857a854fd2a68df0c98d9f34.zip |
prep for bash-4.3 release
Diffstat (limited to 'examples/functions/coproc.bash')
-rw-r--r-- | examples/functions/coproc.bash | 108 |
1 files changed, 0 insertions, 108 deletions
diff --git a/examples/functions/coproc.bash b/examples/functions/coproc.bash deleted file mode 100644 index 61dc8d7..0000000 --- a/examples/functions/coproc.bash +++ /dev/null @@ -1,108 +0,0 @@ -# coprocess.bash -# -# vi:set sts=2 sw=2 ai: -# - -coprocess_pid= - -# -# coprocess - Start, control, and end coprocesses. -# -function coprocess () -{ - while (( $# > 0 )) ; do - case "$1" in - # - # coprocess close - # - c|cl|clo|clos|close) - shift - exec 61>&- 62<&- - coprocess_pid= - if [ "$1" = "-SIGPIPE" ] ; then - # Only print message in an interactive shell - case "$-" in - *i*) - echo 'SIGPIPE' >&2 - ;; - esac - return 1 - fi - return 0 - ;; - - # - # coprocess open - # - o|op|ope|open) - shift - local fifo="/var/tmp/coprocess.$$.$RANDOM" - - local cmd="/bin/bash" - if (( $# > 0 )) ; then - cmd="$@" - fi - - mkfifo "$fifo.in" || return $? - mkfifo "$fifo.out" || { - ret=$? - rm -f "$fifo.in" - return $? - } - - ( "$@" <$fifo.in >$fifo.out ; rm -f "$fifo.in" "$fifo.out" ) & - coprocess_pid=$! - exec 61>$fifo.in 62<$fifo.out - return 0 - ;; - - # - # coprocess print - write to the coprocess - # - p|pr|pri|prin|print) - shift - local old_trap=$(trap -p SIGPIPE) - trap 'coprocess close -SIGPIPE' SIGPIPE - if [ $# -eq 1 ] && [ "$1" = "--stdin" ] ; then - cat >&61 - else - echo "$@" >&61 - fi - local ret=$? - eval "$old_trap" - return $ret - ;; - - # - # coprocess read - read from the coprocess - # - r|re|rea|read) - shift - local old_trap=$(trap -p SIGPIPE) - trap '_coprocess_close -SIGPIPE' SIGPIPE - builtin read "$@" <&62 - local ret=$? - eval "$old_trap" - return $ret - ;; - - s|st|sta|stat|statu|status) - if [ -z "$coprocess_pid" ] ; then - echo 'no active coprocess' - return 1 - else - echo " coprocess is active [$coprocess_pid]" - return 0 - fi - ;; - - *) - coprocess print "$@" - return $? - ;; - esac - shift - done - coprocess status - return $? -} |