"""
***************************************************************************
    g_extension_list.py
    ------------------
    Date                 : May 2023
    Copyright            : (C) 2023 by Alister Hood
    Email                : alister.hood at gmail dot com
***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*                                                                         *
***************************************************************************
"""

__author__ = 'Alister Hood'
__date__ = 'May 2023'
__copyright__ = '(C) 2023, Alister Hood'

from qgis.core import QgsProcessingParameterBoolean


def processInputs(alg, parameters, context, feedback):
    # get the option we want to run
    # we would need to update the if statements below if the order in the description file is changed
    selectedOption = alg.parameterAsInt(parameters, 'list', context)
    # Locally installed extensions
    if selectedOption == 0:
        optionString = '-a'
    # Extensions available in the official GRASS GIS Addons repository
    elif selectedOption == 1:
        optionString = '-l'
    # Extensions available in the official GRASS GIS Addons repository including module description
    else:
        optionString = '-c'
    param = QgsProcessingParameterBoolean(optionString, '', True)
    alg.addParameter(param)
    # Don't forget to remove the old input parameter
    alg.removeParameter('list')


def convertToHtml(alg, fileName, outputs):
    # don't copy this for something that will have lots of data like r.stats
    # it will be very slow
    with open(fileName, 'r') as f:
        outputs['GRASS_ADDONS'] = f.read()
    # this will read the file a second time, but calling it saves us duplicating the code here
    alg.convertToHtml(fileName)
