Je viens d’effectuer la mise à jour du moteur de blog, et je dois dire, que mes deux [scripts|https://framagit.org/olivierd/upgrade-dotclear] fonctionnent à merveille.

Voici les étapes :

1. Exécution du fichier @@update.sh@@, après avoir modifié les deux variables __LEGACY_VERSION__ et __CURRENT_VERSION__

///
sh update.sh
///

Le programme va créer deux fichiers temporaires : @@~/tmp/deleted.txt@@ (contenant le ou les fichier(s) à supprimer), et @@~/tmp/updated.txt@@ (contenant les fichiers à transférer). La liste des fichiers à mettre à jour peut être longue (surtout quand on doit parcourir plusieurs sous dossiers), il existe un second programme, qui va copier uniquement ces fichiers (tout en gardant l’arborescence).

2. Exécution du fichier @@copy-files.py@@ (il s’agit d’un script Python).

Ce programme nécessite de donner deux paramètres :

///
python3 copy-files.py -h
usage: copy-files.py [-h] dir listing

positional arguments:
dir directory (from tarball)
listing listing (updated.txt)

optional arguments:
-h, –help show this help message and exit
///

* __dir__ correspond à l’archive qui a été téléchargée avec le précédent programme
* __listing__ représente le fichier @@~/tmp/updated.txt@@

Un nouveau dossier sera créé @@~/tmp/dotclear/@@ contenant uniquement les fichiers à  »uploader » sur le serveur.

La dernière étape copie les fichiers (situés dans @@~/tmp/dotclear/@@) à l’aide de la commande @@scp@@.

///
cd ~/tmp
scp -r dotclear/* user@ssh.tuxfamily.org:/home/path/to/dotclear/
///

Il faut bien sur, ne pas oublier de supprimer les fichiers qui se trouvent dans @@~/tmp/deleted.txt@@.