-
Notifications
You must be signed in to change notification settings - Fork 0
/
pre-commit-horario
51 lines (47 loc) · 1.61 KB
/
pre-commit-horario
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
#!/bin/bash
#
# Pre-commit check que deniega la insercion de codigo en la rama 'master' fuera
# del horario permitido.
#
# Con esto se pretende que el repositorio 'master' sea lo más estable posible. Se evitan
# cambios de código en producción que afectan a todas las máquinas.
#
# El horario que se considera seguro es:
#
# Lunes: 07:00 -> 14:00
# Martes: 07:00 -> 14:00
# Miercoles: 07:00 -> 14:00
function horario_ko {
echo "-----------------------------------------------------------"
echo "$(tput setaf 1 ; tput bold ; tput smul)Error$(tput sgr0): horario inválido."
echo "El horario para modificar codigo de la rama 'master'"
echo "es el siguiente:"
echo ""
echo "Lunes: 07:00 - 14:00"
echo "Martes: 07:00 - 14:00"
echo "Miercoles: 07:00 - 14:00"
echo ""
echo "Los cambios realizados fuera de este horario son denegados."
echo "-----------------------------------------------------------"
echo "$(tput bold)Nota:$(tput sgr0) si se trata de un hotfix puedes forzar el cambio con"
echo "la opcion: --no-verify"
echo "$(tput bold)Importante$(tput sgr0): esta opcion debe ser usada con *precaucion*."
echo "-----------------------------------------------------------"
exit 1
}
function horario_ok {
echo "---------------------------------------------------------"
echo "$(tput setaf 2)Commit realizado en horario valido.$(tput sgr0)"
echo "---------------------------------------------------------"
exit 0
}
if [[ $(date +%u) -le 3 ]]; then
HOUR=$(date +%k%M)
if [[ "$HOUR" -ge 0700 ]] && [[ "$HOUR" -le 1400 ]]; then
horario_ok
else
horario_ko
fi
else
horario_ko
fi