dialog_inep.sh 6.51 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
#!/bin/bash
# Copyright (C) 2004-2012 Centro de Computacao Cientifica e Software Livre
# Departamento de Informatica - Universidade Federal do Parana - C3SL/UFPR
#
# This file is part of le-proinfodata
#
# le-proinfodata is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
# USA.

#Filter data in le.zone
23
function verify_inep() {
24
	i=0
25 26 27 28 29 30 31
	cat $LE_ZONE | cut -d "|" -f1 | grep $1
	RETURN=$?
	info1=$(cat $LE_ZONE | grep $1 | tr -d " " | cut -d "|" -f1)
	info2=$(cat $LE_ZONE | grep $1 | tr -d " " | cut -d "|" -f2)
	info3=$(cat $LE_ZONE | grep $1 | tr -d " " | cut -d "|" -f3)
	info4=$(cat $LE_ZONE | grep $1 | cut -d "|" -f4)
	info5=$(cat $LE_ZONE | grep $1 | tr -d " " | cut -d "|" -f5)
32 33 34 35 36
	if [ $info1 != $1 ]; then
		return 1
	fi
	#Start progress bar
	(while [ $i -lt 100 ]; do
37
		echo $i
38 39
		sleep 1
		i=$((i+30))
40
	done)| zenity --progress --title="INEP" --text="Verificando INEP digitado..." --percentage=0 --no-cancel --auto-close --width=600 --height=100
41
	#End progress bar
42
	if [ $RETURN -eq 0 ];then
43 44 45
 		#Check INEP is valid and correct
		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
46
			echo $info1 > $2
47
			return 0
48
		else
49 50 51
			#Check INEP is valid but not correct
			return 1
		fi
52
	else
53
		#Check INEP is invalid
54
		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
55
		return 1
56 57
	fi
}
58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
#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")
		if [ $? -eq 1 ];then
			zenity --info --title="INEP" --text="Processo concluido!"
			exit 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
				else
					zenity --info --title="PROXY" --text="As senhas não conferem!"
				fi
			done
		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
		fi
	done
}
TEXT="\"quero digitar o INEP da minha escola depois\""
VALID=0
100
# INEP file
101 102 103 104 105
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"
106
# Proxy file
107 108 109 110
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"
111
# LE ZONE
112 113
LE_ZONE="/etc/le-proinfodata/le.zone"
if [ $VALID -eq 0 ]; then
114
	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."
115 116
	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
117
		if [ $? -eq 1 ]; then
118
			INEP=$(zenity --entry --title="INEP" --text="Digite seu INEP ou a mensagem: $TEXT" --cancel-label="Cancelar" --width=600 --height=100)
119 120
		else
			#Check strings
121 122 123
			INEP_C=$(echo $INEP|tr -d " ")
			TEXT_C=$(echo $TEXT|tr -d " "|tr -d "\"")
			if [ "$INEP_C" = "$TEXT_C" ]; then
124
				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."
125
				VALID=1
126 127
			else
				#Check the size of the string
128 129 130
				if [ ${#INEP} -eq 8 ]; then
					if verify_inep $INEP $F_INEP; then
						VALID=1
131 132 133
						zenity --question --title="PROXY" --text="Você possui informações de proxy?"
						#Configure Proxy
						if [ $? -eq 0 ];then
134
							verify_proxy
135 136 137
						fi
						zenity --info --title="INEP" --text="Processo concluido!"
					else
138
						INEP=$(zenity --entry --title="INEP" --text="Digite seu INEP ou a mensagem: $TEXT" --width=600 --height=100 --cancel-label="Cancelar" )
139
					fi
140
				else
141

142
					INEP=$(zenity --entry --title="INEP" --text="Digite seu INEP ou a mensagem: $TEXT" --width=600 --height=100 --cancel-label="Cancelar")
143 144 145 146 147 148 149 150 151 152 153
				fi
			fi
		fi
	done
fi
# 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}
154
cp ${MD5F_INEP} ${MD5BACKUPF_INEP}
155 156 157 158
cp ${MD5F_PROXY} ${MD5BACKUPF_PROXY}

chown seed_mec:seed_mec ${F_INEP}
chown seed_mec:seed_mec ${F_PROXY}