#!/usr/bin/python3
# lastact: arturo@2024-03-07
# desc: Configura en los PPDs los parámetros indicados como parámetros

# Para recoger los parametros pasados en la llamada al script:
import argparse

# Importamos textwrap para poder hacer uso de un epilogo de ejemplos al final de la ayuda de varias lineas, tal como indica la doc de argparse:
# https://docs.python.org/es/3/library/argparse.html
import textwrap

# Importamos sys para poder pasar los parámetros desde la función de inicio a la función main:
import sys

# Para hacer llamadas al sistema:
import os

# Para hacer uso de expresiones regulares:
import re


# Obtener el nombre del script
nombre_script = os.path.basename(__file__)

# Definir el epílogo con ejemplos:
epilogo = f"""
Ejemplos de uso:
{nombre_script} '-i|--input' 'ruta_fichero_in.ppd' '-o|--output' 'ruta_fichero_out.ppd' '--konica-segumiento-cuenta' ...
{nombre_script} '-i|--input' 'ruta_fichero_in.ppd' '-o|--output' 'ruta_fichero_out.ppd' '--konica-user-authentication' ...
{nombre_script} '-c|--custom' "{{'directiva1': 'valor1', 'directiva2': 'valor2', ...}}" ...
"""


def mostrar_ayuda():
    parser.print_help()


def cadena_to_diccionario(_cadena):
    _lista = {}
    _parejas = _cadena.split(";")
    for _pareja in _parejas:
        if ":" in _pareja:
            _clave,_valor = _pareja.split(": ")
            _lista[_clave] = _valor
    return _lista

def main(argv):
    resultado = {}
    resultado = cadena_to_diccionario(args.string)
    print(f"{resultado}")


# Creamos un objeto argparse para la ayuda y tratamiento de los parámetros:
parser = argparse.ArgumentParser(
    description="Configura los parámetros PPD de los ficheros PPDs pasados como parámetro.",
    formatter_class=argparse.RawDescriptionHelpFormatter,
    epilog=textwrap.dedent(epilogo),
)
parser.add_argument(
    "-s",
    "--string",
    help="Cadena a pasar a diccionario",
    required=True,
)

args = parser.parse_args()

if __name__ == "__main__":
    main(sys.argv[1:])
