Ele é o dialog que irá obter as informações do usuario, como inep e proxy. Ele foi implementado usando o Zenity.
-> exec_dialog.sh e exec_dialog.script
Ambos são scripts para chamar o dialog_inep.sh, mas o LE5 possui versão com multiterminal e sem multiterminal, e ambos possuem diferenças em sua inicialização, motivo que levou a realizar adaptações para ambos. exec_dialog irá executar apenas em maquinas com LE sem multitermainal enquanto o exec_dialog.script irá executar apenas para maquinas com multiterminal.
------------------------------------------------
| | | | | |
| | Antes | | Depois | |
| boot | do | greeter | do | Sessão |
| | greeter | | greeter | |
| | | | | |
------------------------------------------------
^ ^
| |
Esses são os momentos onde o exec_dialog são chamados
Além da diferenças entre versão multiterminal, o LE pode iniciar sessões com o Gnome-Shell ou Gnome-Fallback, que também receberam formas diferentes de ser chamar o exec_dialog. Quando é fallback, apenas para (stop) os processo do script que chama a le-edubar e o gnome-panel, eles só são destravados (continue) quando o script terminar, ou seja se receber um inep valido ou a frase dizendo que não tem o inep no momento, isso tudo acontece através de uma chamada do autostart que executa o exec_dialog.sh.
Caso seja uma sessão Gnome-Shelll, não é possivel parar o processo do painel, isso porque o painel não é mais uma aplicação e sim um script em javascript, então usa-se uma configuração do lightdm (greeter), que é chamar o exec_dialog.sh depois do greeter e antes da sessão ser iniciada.
Observações: Sabendo destas peculiaridades, em ambos os scrpts existem algumas variaveis que servem para evitar alguns problemas. Por exemplo em um multiterminal ambos scripts existiram e acontecerá que depois do greeter será chamado o exec_dialog.sh( que não irá aparecerá porque multiterminal impede o uso do X) e irá criar o .dialog_lock (trava para que não fique se excutando o script tda vez que iniciar sessão e quando encerrar sessão), que por sua vez impedirá o exec_dialog.script executar.
-> stop_screen.sh
Script que server para travar o painel e a edubar no multiterminal, isso porque o PID do painel e edubar não são gerados a tempo para que o exec_dialog.script obtenha estes valores.
zenity --list--title="INEP"--text="Essas informações estão corretas?"--cancel-label="Não"--ok-label="Sim"--width=600 --height=200 --column="Inep"--column="Estado"--column="Municipio"--column="Cep"--column="Escola"$info1$info2$info3$info5"$info4"
if[$?-eq 0 ];then
...
...
@@ -51,94 +51,95 @@ function verifica_inep() {
fi
else
#Check INEP is invalid
zenity --warning--title="INEP"--text="O INEP fornecido é inválido. Por favor verifique o número INEP correspondente a sua instituição de ensino e tente novamente ou digite $frase"--width=600 --height=100
zenity --warning--title="INEP"--text="O INEP fornecido é inválido. Por favor verifique o número INEP correspondente a sua instituição de ensino e tente novamente ou digite $TEXT"--width=600 --height=100
return 1
fi
}
frase="\"quero digitar o inep da minha escola depois\""
valido=0
#Save information of the proxy in file
function verify_proxy(){
proxy_ok=0
while[$proxy_ok-eq 0 ];do
proxy=$(zenity --forms--title="PROXY"--text="Preencha as informações de proxy:"--add-entry="Host"--add-entry="Porta"--add-entry="Usuario"--cancel-label="Cancelar")
zenity --question--title="PROXY"--cancel-label="Não"--ok-label="Sim"--text="Existe senha do proxy ?"--width=600 --height=100
password_y_n=$?
#Configure the password if exist
if[$password_y_n-eq 0 ];then
password_ok=0
while[$password_ok-eq 0 ];do
passwords=$(zenity --title="PROXY"--forms--text="Digite a senha"--add-password="Digite a senha"--add-password="Confirme a senha"--cancel-label="Cancelar")
zenity --info--height=100 --no-wrap--title="INEP"--text="O agente de acompanhamento do projeto PROINFODATA foi instalado nesta máquina.\nPara torná-lo funcional, entretanto, é necessário fornecer informações sobre as configurações de proxy,\nalém do número INEP da instituição.\nPara saber mais sobre o projeto, visite o site http://seed.c3sl.ufpr.br."
inep=`zenity --entry--title="INEP"--text="Digite seu INEP ou a mensagem: $frase"--cancel-label="Cancelar"--width=600 --height=100`
while[$valido-eq 0 ];do
INEP=$(zenity --entry--title="INEP"--text="Digite seu INEP ou a mensagem: $TEXT"--cancel-label="Cancelar"--width=600 --height=100)
while[$VALID-eq 0 ];do
if[$?-eq 1 ];then
inep=`zenity --entry--title="INEP"--text="Digite seu INEP ou a mensagem: $frase"--cancel-label="Cancelar"--width=600 --height=100`
INEP=$(zenity --entry--title="INEP"--text="Digite seu INEP ou a mensagem: $TEXT"--cancel-label="Cancelar"--width=600 --height=100)
else
#Check strings
inep_c=`echo$inep|tr -d" "`
frase_c=`echo$frase|tr -d" "|tr -d"\""`
if[$inep_c=$frase_c];then
INEP_C=$(echo$INEP|tr -d" ")
TEXT_C=$(echo$TEXT|tr -d" "|tr -d"\"")
if["$INEP_C"="$TEXT_C"];then
zenity --info--title="INEP"--height=100 --no-wrap--text=" O número INEP será requisitado novamente na próxima vez que este computador for ligado. Clique em OK para continuar."
valido=1
VALID=1
else
#Check the size of the string
if[${#inep}-eq 8 ];then
verifica_inep $inep$F_INEP
inep_valido=$?
if[$inep_valido-eq 0 ];then
valido=1
if[${#INEP}-eq 8 ];then
if verify_inep $INEP$F_INEP;then
VALID=1
zenity --question--title="PROXY"--text="Você possui informações de proxy?"
#Configure Proxy
if[$?-eq 0 ];then
proxy_ok=0
while[$proxy_ok-eq 0 ];do
proxy=`zenity --forms--title="PROXY"--text="Preencha as informações de proxy:"--add-entry="Host"--add-entry="Porta"--add-entry="Usuario"--cancel-label="Cancelar"`
`zenity --question--title="PROXY"--cancel-label="Não"--ok-label="Sim"--text="Existe senha do proxy ?"--width=600 --height=100`
password_y_n=$?
#Configure the password if exist
if[$password_y_n-eq 0 ];then
password_ok=0
while[$password_ok-eq 0 ];do
passwords=`zenity --title="PROXY"--forms--text="Digite a senha"--add-password="Digite a senha"--add-password="Confirme a senha"--cancel-label="Cancelar"`