Re: [grisbi-devel] Nouvelle version unstable 1.9.99
Guillaume Castagnino <[email protected]>
| Newsgroups | gmane.linux.grisbi.devel.french |
|---|---|
| Message-ID | <[email protected]> |
Re-bonjour, Avec cette version du script, j’arrive à faire une migration fonctionnelle sans perdre de variables de conf. ./gsb_convert_conf.sh > grisbi.conf Cela pourrait permettre de faire la migration sans devoir se refaire toute la conf. @+ Guillaume -- Guillaume Castagnino [email protected] Le mardi 05 janvier 2021 à 12:35 +0100, Guillaume Castagnino a écrit : > Bonjour, > > Donc c’est bien ce que je supposait :) > > Au sujet de mettre en message… En fait ça saute déjà aux yeux : > l’assistant de premier lancement apparait (d’ou ma surprise, ça fait > un peu flipper comme transition :D) > > J’ai bidouillé un script qui dumpe les paramètres gsettings et génère > un fichier de conf avec (en pièce jointe) > Je m’apperçois que c’est loin d’être parfait : lis clés avec les > valeurs par défaut du schéma gsettings ne sont pas dumpées, le > comportement du parser de conf est de ne pas prendre la valeur par > défaut en cas de clé absente, mais par exemple pour les booléens, il > se passe une conversion clé vide => false. > Donc en gros mon approche ne marche pas. Il faudrait arriver à avoir > l’exhaustivité des clés, en travaillant un peu plus mon script de > migration. > > Si il est possible de générer un fichier de conf tout en continuant à > lire la conf gsettings, ça pourrait être la transition la moins > douloureuse effectivement… Ça ne règle pas le problème des sauts de > version, mais c’est un premier pas. > > @+ > > -- > Guillaume Castagnino > [email protected] > > Le mardi 05 janvier 2021 à 11:33 +0100, Pierre a écrit : > Le 05/01/2021 à 09:08, Ludovic Rousseau a écrit : > > Bonjour, > > En fait il y a plusieurs solutions. Toutefois je me demande quel est > l'impact réel du changement. Y a-t-il beaucoup de paramètres qui sont > modifiés par rapport au paramétrage par défaut. > > Si il y en a peu, on peut juste mettre un message demandant de > balayer > les paramètres qui sont en bleu pour les remettre. > > Sinon une opération moins douloureuse est de compiler en mode > gsettings > et de sauvegarder aussi dans un fichier de conf. > > Lors d'une prochaine version qui devrait arriver rapidement après la > 2 > on passera avec un fichier de configuration. > > Merci de vos commentaires. > > > Le mar. 5 janv. 2021 à 08:14, Guillaume Castagnino > > <[email protected] > > <mailto:[email protected]>> a écrit : > > > > Bonjour, > > > > > > Bonjour Guillaume, > > > > Je suis en train de mettre à jour mon ebuild (Gentoo), et je me > > pose > > une question sur ça : > > > > https://github.com/grisbi/grisbi/commit/ce7c67918a938a532fe63aa8dcf5baec575705a8 > > > > <https://github.com/grisbi/grisbi/commit/ce7c67918a938a532fe63aa8dcf5baec575705a8 > > > > > > > Quelles sont les intentions exactement ? > > Ce changement pose un problème de migration de la configuration > > sur > > des anciennes installations utilisant gsettings (petit choc à > > l’ouverture de grisbi :D). Du coup, je pense conserver la conf > > gsettings avec « --disable-config-file ». > > Sauf que à long terme, vous pensez faire quoi ? Serait-il plus > > intéressant de repasser sur un fichier de conf (comme ce fut le > > cas > > il y a quelques années), ou bien on peut continuer sur > > gsettings > > sans arrière pensée ? > > > > > > Le problème est que gsettings ne fonctionne pas bien sur Windows et > > macOS. Sur ces 2 plateformes on est revenu à un fichier de > > configuration. > > Pour avoir le même code sur GNU/Linux (et donc les mêmes bugs) > > Pierre et > > moi avons choisi de passer au fichier de conf aussi sur GNU/Linux. > > > > Mais effectivement se pose le problème d'une migration de la > > configuration. Je n'avais pas pensé à ça. > > Que faire ? > > > > à+ > > > > _______________________________________________ > > devel mailing list > > [email protected] > > http://listes.grisbi.org/mailman/listinfo/devel _______________________________________________ devel mailing list [email protected] http://listes.grisbi.org/mailman/listinfo/devel
gsb_convert_conf.sh
(application/x-shellscript, 1.1 KB)
#!/bin/bash
# list all categories conversion
# keys are the same on both side
declare -A mapping
mapping["org.gtk.grisbi"]="Root"
mapping["org.gtk.grisbi.files.backup"]="Backup"
mapping["org.gtk.grisbi.files.file"]="File"
mapping["org.gtk.grisbi.form"]="Form"
mapping["org.gtk.grisbi.general"]="General"
mapping["org.gtk.grisbi.geometry"]="Geometry"
mapping["org.gtk.grisbi.messages.tips"]="Tips"
mapping["org.gtk.grisbi.messages.delete"]="Delete_msg"
mapping["org.gtk.grisbi.messages.warnings"]="Warnings_msg"
mapping["org.gtk.grisbi.panel"]="Panel"
mapping["org.gtk.grisbi.prefs"]="Prefs"
mapping["org.gtk.grisbi.scheduled"]="Scheduled"
mapping["org.gtk.grisbi.display"]="Display"
# dump schema
conf=
for key in "${!mapping[@]}"; do
entries=$(gsettings list-recursively $key | awk '{print $2"="substr($0,index($0,$3))}')
conf="$conf
[${mapping[$key]}]
$entries"
done
OLDIFS=$IFS
IFS=
# fix quoted strings
conf=$(echo $conf | sed -e "s/='\([^']*\)'/=\1/")
# convert file array
conf=$(echo $conf | awk '/=\[.*\]/ {gsub(/\['\''/, ""); gsub(/'\''\]/, "");gsub(/'\'', '\''/, ";")}; {print}')
echo $conf