le-proinfodata: dialog_inep.sh completely rewritten

Signed-off-by: 's avatarDiego Giovane Pasqualin <dpasqualin@c3sl.ufpr.br>
parent b7d0eafa
......@@ -19,141 +19,158 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA.
TEXT="\"quero digitar o INEP da minha escola depois\""
SEED_HOME="/opt/seed_mec/SEED2"
F_INEP="${SEED_HOME}/client/conf/INEP"
MD5F_INEP="${SEED_HOME}/.md5sum/client/conf/INEP"
BACKUPF_INEP="${SEED_HOME}/.backup/client/conf/INEP"
MD5BACKUPF_INEP="${SEED_HOME}/.md5sum/.backup/client/conf/INEP"
F_PROXY="${SEED_HOME}/client/conf/proxy"
MD5F_PROXY="${SEED_HOME}/.md5sum/client/conf/proxy"
BACKUPF_PROXY="${SEED_HOME}/.backup/client/conf/proxy"
MD5BACKUPF_PROXY="${SEED_HOME}/.md5sum/.backup/client/conf/proxy"
LE_ZONE="/etc/le-proinfodata/le.zone"
#Filter data in le.zone
function verify_inep() {
i=0
INEP_USER=$1
INEP_FILE=$2
LINE=$(grep "$INEP_USER" $LE_ZONE | tr -d " ")
if [ -n "$LINE" ];then
ESC_INEP=$(cut -d "|" -f1 <<< $LINE)
ESC_UF=$(cut -d "|" -f2 <<< $LINE)
ESC_MUNICIPIO=$(cut -d "|" -f3 <<< $LINE)
ESC_NAME=$(grep "$INEP_USER" $LE_ZONE | cut -d "|" -f4) # line is different because is name of school have space
ESC_CEP=$(cut -d "|" -f5 <<< $LINE)
if [ "$ESC_INEP" != "$INEP_USER" ]; then
return 1
fi
#Start progress bar
(while [ $i -lt 100 ]; do
echo $i
sleep 1
i=$((i+30))
done)| zenity --progress --title="INEP" --text="Verificando INEP digitado..." --percentage=0 --no-cancel --auto-close --width=600 --height=100
#End progress bar
#Check INEP is valid and correct for user
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" $ESC_INEP $ESC_UF $ESC_MUNICIPIO $ESC_CEP "$ESC_NAME"
if [ $? -eq 0 ];then
echo $ESC_INEP > $INEP_FILE
return 0
else
#Check INEP is valid but not correct for user
return 1
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 $TEXT" --width=600 --height=100
return 1
local i=0
local inep=$1
local inep_file=$2
local line
local sch_inep
local sch_uf
local sch_city
local sch_zip
if [[ ${#inep} -ge 7 ]] || [[ ${#inep} -le 10 ]]; then
line=$(grep -w "$inep" $LE_ZONE | tr -d " ")
sch_inep=$(cut -d "|" -f1 <<< "$line")
fi
if [[ -z "$line" ]] || [[ -z "$sch_inep" ]] || [[ "$sch_inep" != "$inep" ]]; then
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 a mensagem: $TEXT" --width=600 --height=100
return 1
fi
# this line is different because the name of the school may have spaces
sch_name=$(grep -w "$inep" $LE_ZONE | cut -d "|" -f4)
sch_uf=$(cut -d "|" -f2 <<< $line)
sch_city=$(cut -d "|" -f3 <<< $line)
sch_zip=$(cut -d "|" -f5 <<< $line)
#Check whether INEP is valid and correct for user
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" $sch_inep $sch_uf "$sch_city" $sch_zip "$sch_name"
if [ $? -eq 0 ];then
echo $sch_inep > $inep_file
return 0
else
# Check INEP is valid but not what the user expected
return 1
fi
}
#Save information of the proxy in file
function verify_proxy() {
proxy_ok=0
while [ $proxy_ok -eq 0 ]; do
local proxy_ok="false"
local password_ok="false"
local proxy
local host
local port
local user
local pwd_confirm
local password
local confirm
while [[ $proxy_ok = "false" ]]; 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")
if [ $? -eq 1 ];then
zenity --info --title="INEP" --text="Processo concluido!"
exit 0
if [[ $? -eq 1 ]]; then
zenity --info --title="INEP" \
--text="Configuração de Proxy cancelada pelo usuário."
return 0
fi
host=$(echo $proxy | cut -d"|" -f1)
port=$(echo $proxy | cut -d"|" -f2)
user=$(echo $proxy | cut -d"|" -f3)
echo "phost="$host > $F_PROXY
echo "pport="$port >> $F_PROXY
echo "puid="$user >> $F_PROXY
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")
password=$(echo $passwords | cut -d"|" -f1)
password_conf=$(echo $passwords | cut -d"|" -f2)
echo "PASS "$passwords "P1 "$password "P2 "$password_conf
if [ "$password" = "$password_conf" ]; then
echo "ppasswd="$password >> $F_PROXY
password_ok=1
host=$(cut -d"|" -f1 <<< $proxy)
port=$(cut -d"|" -f2 <<< $proxy)
user=$(cut -d"|" -f3 <<< $proxy)
# Configure the password if exist
zenity --question --title="PROXY" --cancel-label="Não" --ok-label="Sim" --text="Existe senha do proxy?" --width=600 --height=100
if [[ $? -eq 0 ]]; then
password_ok="false"
while [[ $password_ok = "false" ]]; do
pwd_confirm=$(zenity --title="PROXY" --forms --text="Digite a senha" --add-password="Digite a senha" --add-password="Confirme a senha" --cancel-label="Cancelar")
if [[ $? -ne 0 ]]; then
break
fi
password=$(cut -d"|" -f1 <<< "$pwd_confirm")
confirm=$(cut -d"|" -f2 <<< "$pwd_confirm")
if [[ "$password" = "$confirm" ]]; then
password_ok="true"
else
zenity --info --title="PROXY" --text="As senhas não conferem!"
zenity --info --title="PROXY" \
--text="As senhas não conferem\!"
fi
done
else
password_ok="true"
fi
#Check PROXY is valid and correct
zenity --question --title="INEP" --cancel-label="Não" --ok-label="Sim" --text="Host:$host \nPorta: $port \nUsuario: $user \nEssas informações estão corretas?"
if [ $? -eq 0 ];then
proxy_ok=1
# Check whether PROXY is valid
if [[ $password_ok = "true" ]]; then
zenity --question --title="INEP" --cancel-label="Não" --ok-label="Sim" \
--text="Host:$host \nPorta: $port \nUsuario: $user \nEssas informações estão corretas?"
if [[ $? -eq 0 ]]; then
echo "phost="$host > $F_PROXY
echo "pport="$port >> $F_PROXY
echo "puid="$user >> $F_PROXY
echo "ppasswd="$password >> $F_PROXY
proxy_ok="true"
fi
fi
done
return 0
}
TEXT="\"quero digitar o INEP da minha escola depois\""
VALID=0
# INEP file
SEED_HOME=/opt/seed_mec/SEED2
F_INEP="${SEED_HOME}/client/conf/INEP"
MD5F_INEP="${SEED_HOME}/.md5sum/client/conf/INEP"
BACKUPF_INEP="${SEED_HOME}/.backup/client/conf/INEP"
MD5BACKUPF_INEP="${SEED_HOME}/.md5sum/.backup/client/conf/INEP"
# Proxy file
F_PROXY="${SEED_HOME}/client/conf/proxy"
MD5F_PROXY="${SEED_HOME}/.md5sum/client/conf/proxy"
BACKUPF_PROXY="${SEED_HOME}/.backup/client/conf/proxy"
MD5BACKUPF_PROXY="${SEED_HOME}/.md5sum/.backup/client/conf/proxy"
# LE ZONE
LE_ZONE="/etc/le-proinfodata/le.zone"
if [ $VALID -eq 0 ]; then
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: $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: $TEXT" --cancel-label="Cancelar" --width=600 --height=100)
else
#Check strings
INEP_C=$(echo $INEP|tr -d " "|tr '[[:upper:]]' '[[:lower:]]')
TEXT_C=$(echo $TEXT|tr -d " "|tr -d "\""| tr '[[:upper:]]' '[[:lower:]]')
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."
VALID=1
else
#Check the size of the string
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
verify_proxy
fi
zenity --info --title="INEP" --text="Processo concluido!"
else
INEP=$(zenity --entry --title="INEP" --text="Digite seu INEP ou a mensagem: $TEXT" --width=600 --height=100 --cancel-label="Cancelar" )
fi
else
INEP=$(zenity --entry --title="INEP" --text="Digite seu INEP ou a mensagem: $TEXT" --width=600 --height=100 --cancel-label="Cancelar")
fi
fi
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."
VALID=false
while [[ $VALID = "false" ]]; do
INEP=$(zenity --entry --title="INEP" --text="Digite seu INEP ou a mensagem: $TEXT" --cancel-label="Cancelar" --width=600 --height=100)
#Check strings
INEP_C=$(echo $INEP|tr -d " "|tr '[[:upper:]]' '[[:lower:]]')
TEXT_C=$(echo $TEXT|tr -d " "|tr -d "\""| tr '[[:upper:]]' '[[:lower:]]')
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."
VALID=true
elif verify_inep "$INEP" "$F_INEP"; then
VALID=true
zenity --question --title="PROXY" --text="Você possui informações de proxy?"
#Configure Proxy
if [[ $? -eq 0 ]];then
verify_proxy
fi
done
fi
zenity --info --title="INEP" --text="Processo concluido\!"
fi
done
# Generate md5 hashs for the files
md5sum ${F_INEP} | cut -d' ' -f1 > ${MD5F_INEP}
md5sum ${F_PROXY} | cut -d' ' -f1 > ${MD5F_PROXY}
# Backup the files
cp ${F_INEP} ${BACKUPF_INEP}
cp ${F_PROXY} ${BACKUPF_PROXY}
cp ${MD5F_INEP} ${MD5BACKUPF_INEP}
cp ${MD5F_PROXY} ${MD5BACKUPF_PROXY}
chown seed_mec:seed_mec ${F_INEP}
chown seed_mec:seed_mec ${F_PROXY}
if [[ -f "${F_INEP}" ]]; then
md5sum ${F_INEP} | cut -d' ' -f1 > ${MD5F_INEP}
cp ${F_INEP} ${BACKUPF_INEP}
cp ${MD5F_INEP} ${MD5BACKUPF_INEP}
chown seed_mec:seed_mec ${F_INEP} ${BACKUPF_INEP} ${MD5BACKUPF_INEP}
fi
if [[ -f "${F_PROXY}" ]]; then
md5sum ${F_PROXY} | cut -d' ' -f1 > ${MD5F_PROXY}
cp ${F_PROXY} ${BACKUPF_PROXY}
cp ${MD5F_PROXY} ${MD5BACKUPF_PROXY}
chown seed_mec:seed_mec ${F_PROXY} ${BACKUPF_PROXY} ${MD5BACKUPF_PROXY}
fi
exit 0
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment