#!/bin/bash
#
#
# El formato del valor recibido como parámetro debería ser lo siguiente:
# "\"https://aplicaciones.aragon.es/sigaddweb/login\",\"https://www.wordreference.com/es/\",\"https://www.google.es\""

FICH="/etc/opt/chrome/policies/managed/vx-paginicio-chrome.json"

function mostrar_paginas_inicio() {
    [[ -f "${FICH}" ]] && \
    echo "# ${FICH}:" && \
    jq -r ".RestoreOnStartupURLs" "${FICH}" || \
    echo "# Error: ${FICH}. Problema para mostrar las páginas de inicio configuradas en Chrome/Chromium"
}

# Si no recibimos parámetros nos limitamos a mostrar las páginas de inicio configuradas:
(( ${#} == 0 )) && \
mostrar_paginas_inicio && \
exit 0

(( ${#} == 1 )) && \
PAGS_INICIO="${1}"
(( ${#} > 1 )) && \
PAGS_INICIO="$(printf '"%s",' "${@}" | sed 's/,$//')"

[[ -z "${PAGS_INICIO}" ]] && \
echo "#> No se han especificado URLS, salimos" >&2 && \
exit 1

# Comprobamos la correcta integridad del archivo antes de modificarlo:
if jq empty "${FICH}" ; then
    # jq -r ".RestoreOnStartupURLs = [ \"https://www.hola.es\" , \"https://otro.mas.es\" ]" "${FICH}"
    jq -r ".RestoreOnStartupURLs = [ ${PAGS_INICIO} ]" "${FICH}" | \
    sponge "${FICH}" && \
    echo "#> Ok. Páginas de inicio de Chrome/Chromium actualizadas" && \
    mostrar_paginas_inicio || \
    echo "#> Error. Problema para configurar las Páginas de Inicio en Chrome/Chromium"
else
    echo "#> Error: ${FICH} es un fichero JSON mal formado"
fi

exit 0