Mot-clé - Shell

Fil des billets

dimanche 21 janvier 2018

Explication sur comment mettre à jour Dotclear sur notre serveur

Je viens d'effectuer la mise à jour du moteur de blog, et je dois dire, que mes deux scripts fonctionnent à merveille.

Voici les étapes :

1. Exécution du fichier update.sh, après avoir modifié les deux variables LEGACY_VERSION et UPDATE_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 Python3).

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.

dimanche 23 juin 2013

Voir et revoir les vidéos de Arte+7 en ligne de commande

Si vous souhaitez voir ou revoir facilement les vidéos du site Arte+7, vous pouvez utiliser le script shell [1]), qui se trouve en annexe.

Il repose sur le fabuleux framework, GStreamer.

Édit (mise à jour, 28 juin 2013) : Lisez bien les prérequis notamment si vous êtes sous Debian/Ubuntu ou LinuxMint.

Note

[1] Je me suis appuyé sur sh(1), donc il fonctionne avec n'importe quel interpréteur de commandes tels que Bash, cshell, mksh, ...

Lire la suite...

samedi 16 mars 2013

Le pattern-matching dans Bash

En faisant la mise à jour de Dotclear, via les patches, j'ai oublié de préciser qu'il fallait omettre le dossier parent. Je me suis donc retrouvé avec des fichier portant l'extension .rej.

assoavignu@pastis $ for file in `find . -type f -name '*.rej'`; do echo ${file}; done
./blogs.php.rej
./blog_theme.php.rej
./comment.php.rej
./categories.php.rej
./category.php.rej
./comments_actions.php.rej
./comments.php.rej
./blog_pref.php.rej

Pour retrouver leurs extensions d'origine (.php), une simple boucle suffit :

assoavignu@pastis $ for file in `find . -type f -name '*.rej'`; do mv ${file} ${file%.*}; done

Je ne suis pas certain que la « syntaxe » ${variable%.*} fonctionne avec tous les shells.