Commit b23c8371 authored by Lior Spach's avatar Lior Spach

le-italc-config: Refs #1420 Rewrited Welcome && Unconfig Procedure

Signed-off-by: Lior Spach's avatarLior Spach <ls12@inf.ufpr.br>
parent 084561e8
......@@ -27,60 +27,100 @@ if [ $(id -u) != 0 ]; then
exit $?
fi
#TODO: ADD A WAY FOR USER TO SEE HELP PAGE
#TODO: VERIFY IF ITALC IS INSTALLED
#GLOBAL VARIABLES
#Script path to be created for monoterminal:
SCRIPT_MONO_PATH="/etc/lightdm/greeter-exec-scripts/ica-auto-starter.sh"
#Script path to be created for multiterminal:
SCRIPT_MULT_PATH="/etc/profile.d/ica-start-multiterminal.sh"
#Program to help configure italc
#=================================UNCONFIG-FUNCTIONS===============================
unconfig_monoterminal () {
if [ ! -f "$SCRIPT_MONO_PATH" ]; then
zenity --warning --title="Aviso" --text="Não foi identificada nenhuma configuração monoterminal"
return 1
else
#Remove key and generated script
rm -f /etc/italc/public/teacher/key
rm -f "$SCRIPT_MONO_PATH"
return 0
fi
}
unconfig_multiterminal () {
if [ ! -f "$SCRIPT_MULT_PATH" ]; then
zenity --warning --title="Aviso" --text="Não foi identificada nenhuma configuração multiterminal"
return 1
else
#Remove key and generated script
rm -f "/etc/italc/public/teacher/key"
rm -f "$SCRIPT_MULT_PATH"
return 0
fi
#This function does not remove computers entries from italc.
}
#====================================================================================
#==WELCOME===========================================================
zenity --question --title="Configurador do Italc" \
--height=200 --width=500 \
--text="Bem vindo ao auto configurador do italc\! Como usar o configurador: \
\n\nEm monoterminais: deve-se antes de configurar o client configurar a estação que será servidora, caso ainda não foi feito execute este programa na estação servidora. \
\nEm Multiterminais: é necessária apenas uma execução desse programa com a opção multiterminal para configurar servidor e cliente de uma vez só. \
\n\nResponda as perguntas que virão a seguir corretamente para que seja realizada a auto configuração com sucesso." \
--ok-label="Continuar" --cancel-label="Sair"
zenity --question --title="Configurador do iTalc" \
--height=100 --width=600 \
--text="Bem vindo ao auto configurador do iTalc\! \
\n\nExecute esse configurador primeiramente na máquina designada para ser o servidor do iTalc e em seguida nos terminais clientes. No caso de estar em um multiterminal apenas uma execução desse instalador é necessária para configuração da estação cliente e servidor. \
\n\nClique em Continuar para prosseguir com a configuração" \
--ok-label="Continuar" --cancel-label="Sair"
[ "$?" = "1" ] && exit 0 #Cancel Pressed
#====================================================================
#Configuration Variables Names:
#Values: 1-True 0-False
##isConfig = Config or Unconfig
##isMult = multiterminal or 'monoterminal'?
##isClient = Client or Server?
# (Values: 1-True 0-False)
#
# isMult = multiterminal or 'monoterminal'?
# isClient = Client or Server?
#QUESTIONS
#Ask: Is it configuration?
zenity --question --title="Configurador do Italc" --text="Deseja realizar uma configuração, ou desfazer?" \
--ok-label="Configurar" --cancel-label="Desfazer configuração"
[ $? -eq 0 ] && isConfig=1 || isConfig=0
#Ask: Is it multiterminal?
zenity --question --title="Configurador do Italc" \
#If already exist a configuration
if [ -f "$SCRIPT_MONO_PATH" -o -f "$SCRIPT_MULT_PATH" ]; then
#ASK: Is it configuration?
zenity --question --title="Configurador do iTalc" \
--text="Foi detectada uma configuração prévia do iTalc nessa máquina.
\nDeseja continuar? \
\nTodas as configurações anteriores serão desfeitas" \
--ok-label="Sim" --cancel-label="Não"
[ $? -eq 1 ] && exit 0
if [ -f "$SCRIPT_MONO_PATH" ]; then
unconfig_monoterminal
else #Multiteminal
unconfig_multiterminal
fi
fi
#ASK: Is it multiterminal?
zenity --question --title="Configurador do iTalc" \
--height=100 --width=450 \
--text="Você está em qual tipo de estação?" \
--ok-label="Multiterminal" --cancel-label="Monoterminal"
if [ $? -eq 0 ]; then #MULTITERMINAL
isMult=1
#If it is Multiterminal then ask how much terminals there is(for italc auto add)
#ASK: How much terminals there is(for iTalc auto-adder)
numTerm=$(
zenity --title="Número de terminais" --height=330 \
--text="Selecione o número de terminais do seu multiterminal:" \
--list --radiolist \
--column="Selecionado" \
--column="Número de terminais" \
"TRUE" "1" "" "2" "" "3" "" "4" "" "5" "" "6" "" "7" "" "8" "" "9"
zenity --title="Número de terminais" --height=330 \
--text="Selecione o número de terminais do seu multiterminal:" \
--list --radiolist \
--column="Selecionado" \
--column="Número de terminais" \
"TRUE" "1" "" "2" "" "3" "" "4" "" "5" "" "6" "" "7" "" "8" "" "9"
)
if [ "$?" = "1" ]; then
echo "Operação Cancelada"
exit 4
fi
else #MONOTERMINAL
else #MONOTERMINAL
isMult=0
#If it is MONOterminal it can be Client or Master configuration
#Ask: Master or Client machine/terminal?
zenity --question --title="Configurador do Italc" \
#ASK: Master or Client machine/terminal?
zenity --question --title="Configurador do iTalc" \
--height=100 --width=450 \
--text="Esta estação vai ser usada como cliente ou servidora?" \
--ok-label="Cliente" --cancel-label="Servidor"
......@@ -91,28 +131,22 @@ else #MONOTERMINAL
fi
fi
#Ask: Confirm
#ASK: Confirm
[ "$isMult" = "1" ] && s1="Multiterminal" || s1="Monoterminal"
[ "$isClient" = "1" ] && s2="Cliente" || s2="Servidor"
[ "$isMult" = "1" ] && s2="Todas"
zenity --question --title="Configurador do Italc" \
zenity --question --title="Configurador do iTalc" \
--text="Verifique as informações: \
\nTipo: $s1 \
\nFunção: $s2" \
--ok-label="Confirma" --cancel-label="Cancelar" ##--cancel-label="Voltar"
--ok-label="Confirmar" --cancel-label="Cancelar" ##--cancel-label="Voltar"
[ "$?" = "1" ] && exit 0 #TODO: execute this script again
##===================================================================================================================##
##---START_FUNCTIONS-------------------------------------------------------------------------------------------------##
##===================================================================================================================##
#GENERAL CONFIGURATIONS
#Script path to be created for monoterminal:
SCRIPT_MONO_PATH="/etc/lightdm/greeter-exec-scripts/ica-auto-starter.sh"
#Script path to be created for multiterminal:
SCRIPT_MULT_PATH="/etc/profile.d/ica-start-multiterminal.sh"
generate_script_monoterminal_client () {
local g_file="$SCRIPT_MONO_PATH"
echo "#!/bin/sh" > $g_file
......@@ -158,46 +192,11 @@ generate_script_multiterminal () {
chmod +x $g_file
}
unconfig_monoterminal () {
zenity --question --title="Desfazer Configurações" \
--text="Você tem certeza que deseja remover configurações\nda estação MONOTERMINAL?" \
--ok-label="Sim" --cancel-label="Não"
[ "$?" = "1" ] && exit 0
if [ ! -f "$SCRIPT_MONO_PATH" ]; then
zenity --warning --title="Aviso" --text="Não foi identificada nenhuma configuração monoterminal"
return 1
else
#Remove key and generated script
rm -f /etc/italc/public/teacher/key
rm -f "$SCRIPT_MONO_PATH"
return 0
fi
}
unconfig_multiterminal () {
zenity --question --title="Desfazer Configurações" \
--text="Você tem certeza que deseja remover configurações\nda estação MULTITERMINAL?" \
--ok-label="Sim" --cancel-label="Não"
[ "$?" = "1" ] && exit 0
if [ ! -f "$SCRIPT_MULT_PATH" ]; then
zenity --warning --title="Aviso" --text="Não foi identificada nenhuma configuração multiterminal"
return 1
else
#Remove key and generated script
rm -f "/etc/italc/public/teacher/key"
rm -f "$SCRIPT_MULT_PATH"
return 0
fi
#This function does not remove computers entries from italc.
}
config_client_monoterminal () {
#Steps:
## 1. Ask for keys
## 2. Import keys
zenity --question --title="Configurador do Italc" \
zenity --question --title="Configurador do iTalc" \
--text="Para configurar o cliente é necessário ter sido configurada a estação servidora e adquirido o arquivo Chave-Italc.\n\nClique em Selecionar arquivo e selecione Chave-Italc." \
--ok-label="Selecionar Arquivo" --cancel-label="Sair"
[ "$?" = "1" ] && exit 0
......@@ -206,7 +205,7 @@ config_client_monoterminal () {
local key_file="$(zenity --file-selection)"
local key_filename="$( echo "$key_file" | awk -F "/" '{print $NF}')"
if [ "$key_filename" != "Chave-Italc" ]; then
zenity --question --title="Configurador do Italc" --text="Arquivo inválido." \
zenity --question --title="Configurador do iTalc" --text="Arquivo inválido." \
--height=150 --width=250 \
--ok-label="Selecionar outro arquivo" --cancel-label="Sair"
[ "$?" = "1" ] && exit 0
......@@ -238,7 +237,7 @@ config_master_monoterminal () {
sudo -u $SUDO_USER nautilus $tmp_dir_chave &
sleep 2 #time to open nautilus
zenity --info --title="Configurador do Italc" --text="Copie o arquivo Chave-Italc para as estações clientes, ele será solicitado pelo configurador."
zenity --info --title="Configurador do iTalc" --text="Copie o arquivo Chave-Italc para as estações clientes, ele será solicitado pelo configurador."
}
config_multiterminal () {
......@@ -314,17 +313,6 @@ showHelp () {
##===================================================================================================================##
#Call right configuration function
if [ $isConfig -eq 0 ]; then
if [ $isMult -eq 0 ]; then
#monoterminal
unconfig_monoterminal
else
#multiterminal
unconfig_multiterminal
fi
exit 0
fi
if [ "$isMult" = "0" ]; then
if [ "$isClient" = "1" ]; then
config_client_monoterminal
......@@ -341,5 +329,3 @@ elif [ "$isMult" = "1" ]; then
--ok-label="Ajuda" --cancel-label="Concluir"
[ "$?" = "0" ] && showHelp || exit 0
fi
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