#!/bin/sh

# IMPORTANTE: Si quieres información de depuración (algo no funciona bien),
# dale cualquier valor a la siguiente variable
DEP=

# Variables muy importantes
dirscripts=${3/\/`basename $0`}
titulo=`dcop kate kate-mainwindow\#1 caption`
ruta=${titulo:5}
ruta=${ruta/ */}
fichero=${ruta/\/*\/}
nombre=${fichero/.*}
extension=${fichero/$nombre}
ruta=${ruta/\/$fichero}

# Información de depuración
[ -n "$DEP" ] && echo "Dirscript: $dirscripts" > $ruta/mocka_eje.log
[ -n "$DEP" ] && echo "Título   : $titulo" >> $ruta/mocka_eje.log
[ -n "$DEP" ] && echo "Ruta     : $ruta" >> $ruta/mocka_eje.log
[ -n "$DEP" ] && echo "Fichero  : $fichero" >> $ruta/mocka_eje.log
[ -n "$DEP" ] && echo "Nombre   : $nombre" >> $ruta/mocka_eje.log
[ -n "$DEP" ] && echo "Extensión: $extension" >> $ruta/mocka_eje.log

# Rechazo ficheros que no son de mocka
[ "$extension" != ".md" -a "$extension" != ".mi" ] && {
	[ -n "$DEP" ] && echo "Rechazado: [$extension] no es .md ni .mi" >> $ruta/mocka_eje.log
	exit 1
}

# Rechazo si no existe el fichero ejecutable
[ ! -x $ruta/$nombre ] && {
	[ -n "$DEP" ] && echo "Rechazado: no existe el ejecutable $ruta/$nombre" >> $ruta/mocka_eje.log
	exit 1
}

# Rechazo también si no tengo instalado xterm (o el terminal que tú elijas)
# Cuidado: no basta con que cambies 'xterm' por otro, verifica también
# que acepte los parámetros que se le pasan en la última línea.
terminal=`which xterm 2>/dev/null`
[ ! -n "$terminal" -o ! -x "$terminal" ] && {
	[ -n "$DEP" ] && echo "Rechazado: no está instalado $terminal o no es ejecutable" >> $ruta/mocka_eje.log
	exit 1
}

# Solicitud de parámetros: pulsar cancel si no queremos meter ninguno
parametros=`kdialog --inputbox "Introduzca parámetros (cancelar para ninguno)" --title "Ejecutando $nombre"`

# Ejecución en un terminal separado con espera: puedes cambiar el tipo de
# letra o terminal editando esta línea para usar el terminal que prefieras
[ -n "$DEP" ] && echo "Ejecutar : $terminal -T \"Salida de $nombre\" -e \"cd $ruta; ./$nombre $parametros; read a -p 'Pulse ENTER para cerrar esta ventana y continuar...'\"" >> $ruta/mocka_eje.log
$terminal -T "Salida de $nombre" -e "cd $ruta; ./$nombre $parametros; read -p 'Pulse ENTER para cerrar esta ventana y continuar...' a"