#!/bin/bash


usage_exit() {
    echo "usage: $0 <dev> <rate> [<host>]"
    exit 1
}

LINE=$1
RATE=$2
[ -z "$RATE" ] || BAUDOPT="--baud $RATE"
HOST=$3

[ -z "$LINE" ] && usage_exit
TAG=/tmp/`basename $LINE`


SERIAL_ATTACH=`basename $0`  # in case we are renamed

here () {
cat <<EOF>$TAG.sh
exec picocom $BAUDOPT $LINE
EOF
}

remote () {
cat <<EOF>$TAG.sh
exec ssh -t $HOST $SERIAL_ATTACH $LINE $RATE
EOF
}

if [ -z "$HOST" ]; then
    here
else
    remote
fi

GIT_DTACH=~/git/dtach/dtach
[ -z "$DTACH" ] && DTACH=$GIT_DTACH
[ -x "$DTACH" ] || DTACH=dtach

chmod +x $TAG.sh
exec $DTACH -A $TAG.sock $TAG.sh
