#!/bin/bash
FICH_CONF_CENTRO="${1:-"/usr/share/vitalinux/conf-centro/vx-centro.conf.json"}"
# CURSO=( $(vx-curso-academico) )
CURSO=( 25 26 )

echo "#> ${FICH_CONF_CENTRO} [Curso ${CURSO[*]}]: Cambiamos el curso académico en los nombres de los usuarios a crear, su asignación de passwords y configuración de usuario de inicio de sesión automática:"
    [[ ! -f "${FICH_CONF_CENTRO}" ]] && return 1
    # sed -i \
    # -e "s/$(( CURSO[0] - 1 ))_$(( CURSO[1] - 1 ))/${CURSO[0]}_${CURSO[1]}/g" \
    # -e "s/$(( CURSO[0] - 1 ))-$(( CURSO[1] - 1 ))/${CURSO[0]}-${CURSO[1]}/g" \
    # "${FICH_CONF_CENTRO}"
    
    # Modificamos el campo nombre de la lista de usuarios a crear:
    jq '
.usuarios.crear.lista |= map(
  if (.nombre | test("'"$(( CURSO[0] - 1 ))"'[_-]'"$(( CURSO[1] - 1 ))"'")) then
    with_entries(
      .value |= (
        if type == "string" then
          gsub("'"$(( CURSO[0] - 1 ))_$(( CURSO[1] - 1 ))"'"; "'"${CURSO[0]}_${CURSO[1]}"'") | gsub("'"$(( CURSO[0] - 1 ))-$(( CURSO[1] - 1 ))"'"; "'"${CURSO[0]}-${CURSO[1]}"'")
        else
          .
        end
      )
    )
  else
    .
  end
)
    ' "${FICH_CONF_CENTRO}" | sponge "${FICH_CONF_CENTRO}" && \
    echo "#> ${FICH_CONF_CENTRO} [Curso ${CURSO[*]}]: Actualizamos el curso de los usuarios anuales a crear" || \
    echo "x> ${FICH_CONF_CENTRO} [Curso ${CURSO[*]}]: Problemas para actualizar el curso en los usuarios anuales a crear"
    
    # Modificamos el campo usuario de la lista de usuarios a modificar la constraseña:
    jq '
.usuarios.passwords |= map(
  .passusus |= map(
  if (.usuario | test("'"$(( CURSO[0] - 1 ))"'[_-]'"$(( CURSO[1] - 1 ))"'")) then
    with_entries(
      .value |= (
        if type == "string" then
          gsub("'"$(( CURSO[0] - 1 ))_$(( CURSO[1] - 1 ))"'"; "'"${CURSO[0]}_${CURSO[1]}"'") | gsub("'"$(( CURSO[0] - 1 ))-$(( CURSO[1] - 1 ))"'"; "'"${CURSO[0]}-${CURSO[1]}"'")
        else
          .
        end
      )
    )
  else
    .
  end
  )
)
    ' "${FICH_CONF_CENTRO}" | sponge "${FICH_CONF_CENTRO}" && \
    echo "#> ${FICH_CONF_CENTRO} [Curso ${CURSO[*]}]: Actualizamos curso de los usuarios en los que actualizar la password" || \
    echo "x> ${FICH_CONF_CENTRO} [Curso ${CURSO[*]}]: Problemas para actualizar en la sección usuarios el curso para la password"
    
    # Modificamos el campo usuario de la lista de iniciosesionauto:
    jq '
.iniciosesionauto |= map(
  if (.usuario | test("'"$(( CURSO[0] - 1 ))"'[_-]'"$(( CURSO[1] - 1 ))"'")) then
    with_entries(
      .value |= (
        if type == "string" then
          gsub("'"$(( CURSO[0] - 1 ))_$(( CURSO[1] - 1 ))"'"; "'"${CURSO[0]}_${CURSO[1]}"'") | gsub("'"$(( CURSO[0] - 1 ))-$(( CURSO[1] - 1 ))"'"; "'"${CURSO[0]}-${CURSO[1]}"'")
        else
          .
        end
      )
    )
  else
    .
  end
)
    ' "${FICH_CONF_CENTRO}" | sponge "${FICH_CONF_CENTRO}" && \
    echo "#> ${FICH_CONF_CENTRO} [Curso ${CURSO[*]}]: Actualizamos el curso en los usuarios de inicio de sesión automática" || \
    echo "x> ${FICH_CONF_CENTRO} [Curso ${CURSO[*]}]: Problemas para actualizar el curso en los usuarios de inicio de sesión automática"