#!/bin/bash #Copyright 2002, 2003 William Stearns #Released under the GPL #V0.6 Geometry="80x9" FanSetupCleanup () { for OnePipe in $InPipes $OutPipes; do if [ -p "$OnePipe" ]; then rm -f "$OnePipe" fi done } #trap FanSetupCleanup SIGHUP trap FanSetupCleanup SIGTERM trap FanSetupCleanup SIGINT #Ctrl-C generates this if ! type -path mktemp >/dev/null 2>/dev/null ; then echo "Sorry, no mktemp utility, exiting." >&2 exit 1 fi if [ -z "$1" ]; then echo Usage: >&2 echo "$0 ssh_host [ssh_host]..." >&2 exit 1 fi for OneHost in "$@" ; do if [ "$NextGeom" = "yes" ]; then Geometry="$OneHost" NextGeom="no" else case "$OneHost" in -geometry) NextGeom="yes" ;; *) InPipe=`mktemp -q -u /tmp/fanout.XXXXXX` if [ $? -ne 0 ]; then echo "$0: Can't create temp file $InPipe." >&2 exit 1 fi mknod $InPipe p OutPipe=`mktemp -q -u /tmp/fanout.XXXXXX` if [ $? -ne 0 ]; then echo "$0: Can't create temp file $OutPipe." >&2 exit 1 fi mknod $OutPipe p InPipes="$InPipes $InPipe" OutPipes="$OutPipes $OutPipe" cat $InPipe | ssh -t -t "$OneHost" >$OutPipe 2>&1 & xterm -geometry "$Geometry" -T "$OneHost" -n "$OneHost" -e cat $OutPipe & ;; esac fi done fanterm $InPipes wait FanSetupCleanup