Guts / qgis-deployment-cli

Cross-platform (but focused on Windows) CLI to perform deployment operations: profiles, plugins, etc.
https://guts.github.io/qgis-deployment-cli/
Apache License 2.0
17 stars 2 forks source link

[BUG]: Interpolation in INI file is not working as expected #451

Closed Guts closed 6 months ago

Guts commented 6 months ago

Is there an existing issue or a documentation page for this?

Which version of the app are you using?

0.31.2

Operating System

Linux Ubuntu, Windows 10+

Packaging mode

Python package

Related resources

No response

Description of the bug

The behavior described in https://github.com/Guts/qgis-deployment-cli/pull/337 is not working

Steps to reproduce

  1. store a QGIS.ini file with some environment variable:

    test=$USERPROFILE
  2. Run QDT

  3. Open the installed profile's QGIS3.ini: there is still the raw environment variable

Relevant log output

No response

Comment

Spotted by @lpojgc

jmkerloch commented 6 months ago

@Guts The .ini is named QGIS3.inior QGIS.ini as indicated in the bug description ?

Guts commented 6 months ago

QGIS3.ini

lpojgc commented 6 months ago

Bonjour, On a toujours le même problème avec la release 0.32.0, sur windows 10 et ubuntu 22.04 On a écrit les variables de cette manière mais elles ressortent en l'état sur les profils locaux. Merci

Guts commented 6 months ago

Étrange, car je suis justement en train de tester pour l'atelier QDT de jeudi et cela fonctionne même avec une variable d'environnement définie par le job dans QDT https://gitlab.com/Oslandia/qgis/profils_qgis_fr/-/blob/main/qdt_scenarii/scenario.qdt.yml?ref_type=heads#L15 :

image

lpojgc commented 6 months ago

de mon côté, en étant sur linux en qdt 0.32.0 en faisant une installation avec https://gitlab.com/Oslandia/qgis/profils_qgis_fr/-/raw/main/qdt_scenarii/scenario.qdt.yml ça ne fonctionne pas. J'ai vidé le cache + supprimer complètement le profil

image

Guts commented 6 months ago

Merci d'avoir testé de nouveau et désolé pour le grain de sable. Je réouvre donc ici.

@jmkerloch peux-tu regarder ces jours-ci ou préfères-tu que je m'en occupons ?

jmkerloch commented 6 months ago

@Guts je vais regarder.

Je viens de tester la version 0.32.0. La fonctionnalité d'écriture des variables d'environnement fonctionne lorsque l'on définit la variable d'environnement AVANT de lancer qdt.

En effet, la prise en compte de variable d'environnement avec manage-env-vars n'est pas pris en compte lors de l'écriture du fichier .ini

Guts commented 6 months ago

@lpojgc @lpofredc pouvez-vous essayer svp :

QGIS_CONF_FR=2024 qdt -s https://gitlab.com/Oslandia/qgis/profils_qgis_fr/-/raw/main/qdt_scenarii/scenario.qdt.yml

C'est la commande pour Linux, je vous laisse adapter à Powershell :wink:

lpojgc commented 6 months ago

ça fonctionne chez moi (sur linux)

image image

lpofredc commented 6 months ago

Voici mes retours:

jmkerloch commented 6 months ago

@lpofredc Tu as fait les tests sous Windows ou Linux ? Est ce que tu pourrais vérifier les variables d'environnement déjà en place avant l'appel ?

lpofredc commented 6 months ago

@jmkerloch, je suis sous linux ubuntu (23.10).

En partant d'une instance "propre", ~/.profile nettoyé et profils QGIS supprimés:

vim ~/.profile # pour supprimer le bloc QDT
rm -rf ~/.local/share/QGIS/QGIS3/profiles/{conf_qgis_fr_2023,conf_qgis_fr_2024,Oslandia}
rm -rf .cache/qgis-deployment-toolbelt/

Je lance un nouveau terminal

printenv | grep QGIS # Aucun résultat

Premier lancement: Premier lancement de la commande QGIS_CONF_FR=2024 qdt -s ... > la valeur de qdt_version est $QGIS_CONF_FR.

qdt ajoute le bloc suivant à mon ~/.profile (valeur de variable non surcouchée par celle déclarée dans la ligne de commande)

# BEGIN QDT MANAGED BLOCK
export QGIS_CONF_FR=edition_2024
# END QDT MANAGED BLOCK

Je relance la commande QGIS_CONF_FR=2024 qdt -s ..., la variable qdt_version dans QGIS est bien 2024 mais la valeur dans ~/.profile ne change pas.