#!/bin/sh

term_type=""
begin_cs=""
end_cs=""

main()
{
  init_term_type
  
  trap 'stty echo' 0

  params=""

  for param in "$@"; do
    params="$params \"$param\""
  done

  eparams=`printf "%s" "$params" | od -An -tx1 -v`

  send_cs "liquidl" "params=$eparams"

  stty -echo

  read c

  stty echo

  if [ ! "$c" ] || ! sh -c "$c"; then
    exit 1
  fi
}

send_cs()
{
  printf "${begin_cs}cmd=$1:id=$id:$2$end_cs"
}

init_term_type()
{
  case $TERM in
   screen*) if [ "$TMUX" ]; then
              term_type="tmux"
            else
              term_type="screen"
            fi
            ;;
   *) term_type=""; ;;
  esac


  begin_cs=""

  case $term_type in
   screen*) begin_cs="\033P\033"; ;;
     tmux*) begin_cs="\033Ptmux;\033"; ;;
  esac
  
  begin_cs="$begin_cs""\033]14585;"


  end_cs="\07"
  
  case $term_type in
   screen*) end_cs="$end_cs""\033\\"; ;;
     tmux*) end_cs="$end_cs""\033\\"; ;;
  esac
}

main "$@"
