-
Notifications
You must be signed in to change notification settings - Fork 2
/
ex-211214-2-agenda-YAD.sh
106 lines (88 loc) · 3.51 KB
/
ex-211214-2-agenda-YAD.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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
100
101
102
103
104
105
106
#!/usr/bin/env bash
touch /tmp/agenda.txt
echo "1#Ana#Arranz#6222266454#[email protected]#01/01/1991" > /tmp/agenda.txt
echo "2#Jose Manuel#Perez#66554444#[email protected]#14/45/1111" >> /tmp/agenda.txt
function alta() {
cuenta_registros=$(wc -l < /tmp/agenda.txt)
id_registro_nuevo=$(expr $cuenta_registros + 1)
new_entry=$(yad --form --title="Agenda > Alta contacto" --width=300 --height=500 --center --separator="#" --field="ID de contacto:RO" --field="Nombre" --field="Apellido" --field="Teléfono" --field="Correo electrónico" --field="Fecha de nacimiento:DT" "${id_registro_nuevo}")
echo ${new_entry} >> /tmp/agenda.txt
}
function baja(){
nombre_a_eliminar=$(yad --entry --title="Agenda > Baja contacto" --center --text="Nombre a eliminar")
OIFS=$IFS
IFS="#"
while read id nom ape tel cor fn
do
echo "${nom}"
if [ "${nombre_a_eliminar}" != "${nom}" ];
then
echo "He entrado"
echo "${id}#${nom}#${ape}#${tel}#${cor}#{fn}" >> /tmp/agenda.tmp
fi
done < /tmp/agenda.txt
IFS=$OIFS
mv /tmp/agenda.tmp /tmp/agenda.txt
yad --info --text="Registro eliminado" --center
## DE LA FORMA SENCILLA Y BONITA
#
# nombre_a_eliminar=$(yad --entry --title="Agenda > Baja contacto" --center --entry-text="Nombre a eliminar")
# sed -i.bak "/${nombre_a_eliminar}/d" /tmp/agenda.txt
}
function consulta(){
nombre_a_buscar=$(yad --entry --title="Agenda > Consultar" --center)
}
function listar(){
OIFS=$IFS
IFS="#"
personas=""
while read id nom ape tel cor fn
do
comando='--list --title="Agenda > Listar contactos" --width=500 --height=400 --center --column="Nombre" --column="Apellidos" --column="Teléfono" --column="Correo-e" --column="F.Nac"'
personas=" ${personas} '${nom}' '${ape}' '${tel}' '${cor}' '${fn}' "
#
# echo -e "Comandos: ${comando}\n "
# echo -e "Personas: ${personas}\n"
done < /tmp/agenda.txt
comando_final="${comando[*]} ${personas[*]}"
# echo "Final command: $comando_final"
function mostrar_listado(){
#/usr/bin/yad ${comando_final[@]}
touch /tmp/listar.sh
echo -e "/usr/bin/yad ${comando_final[@]}" > /tmp/listar.sh
chmod +x /tmp/listar.sh
bash /tmp/listar.sh
}
mostrar_listado
IFS=$OIFS
}
function modificaciones(){
OIFS=$IFS
IFS="#"
nombre_a_modificar=$(yad --entry --title="Agenda > Modificar" --center --text="Nombre")
while read id nom ape tel cor fn
do
if [ "${nom}" == "${nombre_a_modificar}" ];
then
fi
echo $
done < /tmp/agenda.txt
## DE LA FORMA BONITA y rápida
grep -v "$nombre_a_modificar" /tmp/agenda.txt > /tmp/agenda.txt.new
mv /tmp/agenda.txt.new_entry /tmp/agenda.txt
}
function menu(){
op="CONT"
while [ "$op" != "SALIR" ]
do
op=$(yad --list --title="Gestión de agenda" --separator= --print-column=1 --width=400 --height=400 --center --column="Opción" --column="Descripción" "ALTA" "Añada un contacto a su agenda" "BAJA" "Elimine un contacto de su agenda" "CONSULTA" "Busque entre sus contactos" "LISTADO" "Obtenga todos sus contactos" "MODIFICAR" "Modifique un contacto guardado" "SALIR" "Cerrar el programa :(")
case $op in
"ALTA") alta;;
"BAJA") baja;;
"CONSULTA") consulta;;
"LISTADO") listar;;
"MODIFICAR") modificaciones;;
esac
done
}
menu