#!/bin/sh # of bash, die klaagt niet over - ^C/usr/local/bin/m4d: 99: cannot open var/run/mariposa-4: Interrupted system call # m4d - daemon for mariposa-4, in order to enable 2 separate players using # the network. to be run as a normal (i.e. non-root) user. # warning: this daemon is a very crude hack. don't run it, unless you know what # you're getting yourself into. i wrote it mainly to learn, not to actually # use. # this script needs ucspi-tcp-ipv6's tcpserver, by djb e.a. # Copyright © 2011 Joost van Baal-Ilić # # This program is free software; you can redistribute it and/or modify it under # the terms of the GNU General Public License, as published by the Free Software # Foundation, either version 3 of the License, or (at your option) any later # version. There is NO warranty. A copy of the GNU GPL is available from # http://www.gnu.org/licenses/. # monitoring ## set -m ## set -x # of naar syslog # exec 2>/tmp/err # FIXME honor MP4_DEBUG rdir=var/run ldir=var/log n=mariposa-4 rf=$rdir/$n lf=$ldir/$n # cd to / or ~/ cd $HOME # FIXME # killall mariposa-4 2>/dev/null # killall tcpserver 2>/dev/null for d in $rdir $ldir do test -d $d || mkdir -p $d done # FIXME # test -f m4w || cat <m4w # #!/bin/sh # cat >var/run/mariposa-4 # EOT # chmod a+x m4w m4r echo "press ^c to stop this daemon" # FIXME # on exit # trap "echo trapped; killall tcpserver 2>/dev/null; exit" 0 INT QUIT TSTP USR1 # trap "echo trapped; exec 2>/dev/null; exit" 0 INT QUIT ABRT # trap "echo trapped; exec 2>/dev/null; exit" INT QUIT ABRT trap 'kill $m4rpid $m4wxpid $m4wopid; exit' INT QUIT ABRT # EINTR? # ^c is QUIT while sleep 1 do rm -f $rf mkfifo $rf : >$lf tcpserver -c1 -B"Welcome to mariposa-4, player o. You are invited to start the game now: it's your turn. To play, type 0, 1, ... 5 or 6; and . " 0 4443 sh -c 'cat >'$rf & m4wopid=$! tcpserver -c1 -B"Welcome to mariposa-4, player x. Once player o made a move, it's your turn. Than, type 0, 1, ... 5 or 6; and . " 0 4444 sh -c 'cat >'$rf & m4wxpid=$! # both players should connect to this port, to view the game # tcpserver 0 4445 ./m4r & tcpserver 0 4445 sh -c 'tail -F '$lf' 2>/dev/null' & m4rpid=$! mariposa-4 <$rf >$lf # FIXME # killall tcpserver tail m4r # killall tcpserver m4r # jobs awk # kill %1 %2 %3 kill $m4rpid $m4wxpid $m4wopid done