#!/bin/bash

function uso() {
    echo "=> ¡¡Importante Uso del script de configuración del CRON de Migasfree (parámetros):
    1 parámetro) set|SET
    2 parámetro) MIGASFREE|FRECUENCY
    3 parámetro) Valor a asignar a MIGASFREE 0|1 FRECUENCY 0|1|7 ...
    ###
    Donde los parámetros hacen referencia a los siguiente:
    # La frecuencia puede ser: 0:daily_every_sessions|7:daily|1:weekly
    FRECUENCY=7
    # Le indica a migasfree si tiene que actuar o no. Lo modifica el script de postmigasfree
    MIGASFREE=1
    # Permitimos el Force Upgrade de Migasfree
    FORCEMIGAS=1
    # Permitimos ejecutar los scripts de inicio de migasfree siempre:
    ALLPRESCRIPTSMIGASFREE=1
    # Permitimos ejecutar los scripts de apagado de migasfree siempre:
    ALLPOSTSCRIPTSMIGASFREE=1
    # Permitimos ejecutar determinados scripts de inicio de migasfree siempre:
    SOMEPRESCRIPTSMIGASFREE=1
    # Permitimos ejecutar determinados scripts de apagado de migasfree siempre:
    SOMEPOSTSCRIPTSMIGASFREE=1
    # Indicamos cuando se programó la última actualización:
    LASTACT = $(date +\"%Y-%m-%d %H:%M:0.0\")
    # En el caso de programación manual del momento de la actualización para FRECUENCY 7 o 1:
    MANUAL = 0
    MYDATETIME = str(datetime.datetime.today())
    ; Mydatetime personalizada diariamente a partir de una determinada hora
    # MYDATETIME1 = str(datetime.datetime.today())
    # MYDATETIME2 = str(datetime.date.today()) + \" 12:29:0.0\"
    ; Mydatetime personalizada pensada a una determinada hora todos los lunes a partir de las 12:29:
    # MYDATETIME3 = str(datetime.date.today() - datetime.timedelta(days=today.weekday())) + \" 12:29:0.0\"
    ; Mediante crudini puede personalizarse este fichero:
    # crudini --set fichero Configuration MYDATETIME 'str(datetime.date.today()) + \" 12:29:0.0\"'
    Ej. vx-migasfree-launcher-conf-cron-cli MIGASFREE 1 FRECUENCY 7"
}

USER="$(whoami)"
[[ "${USER}" != "root" ]] && \
echo "=> Necesitas ser root para configurar el comportamiento del CRON de Migasfree ..." && \
exit 1

FICHCONFCRON="/etc/default/vx-dga-variables/vx-dga-x-migasfree-launcher-cron.conf"
[ ! -f "${FICHCONFCRON}" ] && echo "=> Error!! No existe el archivo de configuración: \"${FICHCONFCRON}\"" && exit 1

# Si no recibe parametros el script informamos del valor de las variables de configuración:
if [ -z "${1}" ] ; then
    cat "${FICHCONFCRON}"
    echo "  ================  "
    uso
    exit 0
fi

ERROR=0
until [[ -z "${1}" || -z "${2}" ]] ; do
    case "${1}" in
        "MIGASFREE" )
            REGEX='^[01]$'
            [[ "${2}" =~ ${REGEX} ]] && \
            {
                echo "=> Va a configurarse: ${1}:${2}" ;
                ERROR=0 ;
            } || \
            echo "=> La variable ${1} sólo admite como valores: 0|1"
        ;;
        "FRECUENCY" )
            REGEX='^[017]$'
            [[ "${2}" =~ ${REGEX} ]] && \
            {
                echo "=> Va a configurarse: ${1}:${2}" ;
                ERROR=0 ;
            } || \
            echo "=> La variable ${1} sólo admite como valores: 0|1|7"
        ;;
        "FORCEMIGAS" | "ALLPRESCRIPTSMIGASFREE" | "ALLPOSTSCRIPTSMIGASFREE" | "SOMEPRESCRIPTSMIGASFREE" | "SOMEPOSTSCRIPTSMIGASFREE" | "MANUAL" )
            REGEX='^[01]$'
            [[ "${2}" =~ ${REGEX} ]] && \
            {
                echo "=> Va a configurarse: ${1}:${2}" ;
                ERROR=0 ;
            } || \
            echo "=> La variable ${1} sólo admite como valores: 0|1"
        ;;
        "MYDATETIME" | "LASTACT" )
            echo "=> Va a configurarse: ${1}:${2}"
            ERROR=0
        ;;
        * ) ERROR=1 ;;
    esac
    
    if (( ${ERROR} == 0 )) ; then
        if crudini --set "${FICHCONFCRON}" "Configuration" "${1}" "${2}" ; then
            echo "=> Se ha configurado: ${1}:${2}"
        else
            echo "=> Problemas para configurar: ${1}:${2}"
        fi
    else
        echo "=> Error!! El parámero ${1} no es configurable ..."
    fi
    shift 2
done
exit 0