Nella versione attuale di BUC, la 0.5.1, non è possibile visualizzare in tempo reale l’output di un qualsiasi processo mandato in esecuzione.
Per ovviare a questa piccola defiance è possibile far si che BUC crei un piccolo script bash che venga poi eseguito su un terminale, cosi che in esso l’utente finale possa visualizzare tutto l’output del processo avviato precedentemente.
Per fare un esempio ipotizziamo di voler realizzare un applicativo mc che ci permetta di installare un qualsiasi programma su Ubuntu tramite il comando sudo apt-get install (è ovvio che realizzare un tale applicativo è pressochè inutile ma per scopo educativo c’è concesso
).
Codice dell’applicativo :
<?xml version="1.0"?>
<config>
<label>
echo "Inserisci il nome del programma che vuoi installare"
</label>
<text var="programma">
</text>
<button text="Installa">
gksu apt-get install $programma
</button>
</config>
Una volta premuto il bottone Installa partirà il processo di installazione del programma scelto però all’utente finale non verrà visualizzato alcuna informazione che faccia capire che l’applicativo ha svolto il suo lavoro.
Per far si che l’utente finale possa visualizzare l’output non dobbiamo far altro che dire a BUC di creare un piccolo script bash con all’interno il comando che vogliamo eseguire.
echo "#!/bin/bash" > installa
echo "sudo apt-get install $programma" >> installa
echo " read -p 'Premi INVIO per chiudere la finestra'" >> installa
echo " exit 0 " >> .airmon
chmod +x installa
if
xterm -e ./installa
then
sleep 1
rm -f installa
fi
Questo codice, che va inserito all’interno dei tag <button>, non fa altro che creare uno script bash chiamato installa che verrà successivamente reso eseguibile ed avviato tramite il terminale xterm; (la scelta di xterm non è casuale, questo terminale si trova nella maggior parte delle distribuzioni, quindi consiglio di utilizzare questo piuttosto che gnome-terminal o konsole cosi da evitare malfunzionamenti) alla fine del lavoro lo script verrà eliminato.
Il codice completo dell’applicativo con questa piccola modifica sarà quindi:
<?xml version="1.0"?>
<config>
<label>
echo "Inserisci il nome del programma che vuoi installare"
</label>
<text var="programma">
</text>
<button text="Installa">
echo "#!/bin/bash" > installa
echo "sudo apt-get install $programma" >> installa
echo " read -p 'Premi INVIO per chiudere la finestra'" >> installa
echo " exit 0 " >> .airmon
chmod +x installa
if
xterm -e ./installa &
then
sleep 1
rm -f installa
fi
</button>
</config>