Subversion : ajouter et mettre à jour un plugin WordPress sur le dépôt officiel photo

Subversion : ajouter et mettre à jour un plugin WordPress sur le dépôt officiel

wordpress-svn-logo

De temps en temps, je mets mes plugins WordPress sur le dépôt officiel mais j’utilise assez rarement subversion – connu également sous le doux nom svn – et j’ai tendance à en oublier la syntaxe.

Voici donc un petit aide-mémoire pour l’utilisation de subversion avec les plugins WordPress.

Ajouter un plugin sur le dépôt officiel WordPress

1. On crée un répertoire local sur notre machine pour y accueillir notre projet:

mkdir my-local-dir

2. On synchronise le dépôt avec un check-out en donnant le slug du plugin:

svn co https://plugins.svn.wordpress.org/your-plugin-name my-local-dirLangage du code : JavaScript (javascript)

Résultat:

> A	my-local-dir/trunk
> A	my-local-dir/branches
> A	my-local-dir/tags
> Checked out revision 1135625.

Subversion vient d’ajouter ( « A » signifie « add » ) tous les répertoires du dépôt central à notre copie locale.

3. On copie tous les fichiers du plugin dans le répertoire trunk/:

cd my-local-dir/
my-local-dir/$ cp ~/my-plugin.php trunk/my-plugin.php
my-local-dir/$ cp ~/readme.txt trunk/readme.txtLangage du code : JavaScript (javascript)

4. On prépare l’ajout des fichiers du plugin au dépôt central:

my-local-dir/$ svn add trunk/* assets/*
> A	trunk/my-plugin.php
> A	trunk/readme.txtLangage du code : PHP (php)

5. On donne un message à notre check-in et on envoie les fichiers au dépôt central :

my-local-dir/$ svn ci -m 'Adding first version of my plugin'
> Adding	trunk/my-plugin.php
> Adding	trunk/readme.txt
> Transmitting file data .
> Committed revision 1135626.
Langage du code : JavaScript (javascript)

Voilà, vous venez d’ajouter votre plugin au dépôt officiel de WordPress !

Supprimer un fichier sur le dépôt

Pour supprimer un fichier sur le dépôt, il faut supprimer le fichier avec svn delete puis commettre les changements avec svn commit. C’est lors du commit que le fichier est supprimé du dépôt :

svn delete myfile
> D         myfile

svn commit -m "Deleted file 'myfile'."
> Deleting       myfile
> Transmitting file data .
> Committed revision 1135629.Langage du code : JavaScript (javascript)

Lire Subversion : ajouter et mettre à jour un plugin WordPress sur le dépôt officiel

Logo de FFmpeg, comportant un monogramme vert stylisé "FF" sur la gauche - ressemblant à des bandes de film ou à des circuits - à côté du texte noir "FFmpeg" en caractères gras sans-serif, souvent utilisé pour convertir des fichiers MP3 et Ogg Vorbis via Bash, sur un fond gris clair.

Bash : convertir des MP3 en Ogg Vorbis avec FFmpeg

Pour les besoins du Centre de Kriya Yoga France, j’ai déjà eu à convertir toute une série de fichiers MP3 vers Ogg Vorbis afin de les publier proprement sur le Web.

À l’époque, j’utilisais avconv. Aujourd’hui, je recommande plutôt ffmpeg. Il est plus courant, mieux documenté, disponible dans les dépôts des distributions Linux modernes, et beaucoup plus simple à retrouver dans six mois quand vous aurez oublié la commande exacte. Ce qui arrivera. Soyons honnêtes.

Voici donc une version moderne pour convertir des fichiers MP3 en Ogg Vorbis, puis faire l’opération inverse si nécessaire.

Installer FFmpeg sous Linux

Sur Ubuntu, Debian, Linux Mint et distributions dérivées, installez FFmpeg avec apt :

sudo apt update
sudo apt install ffmpeg

Vérifiez ensuite que la commande est disponible :

ffmpeg -version

Vous pouvez aussi vérifier que FFmpeg connaît les encodeurs Vorbis et MP3 :

ffmpeg -encoders | grep -E 'libvorbis|libmp3lame'Langage du code : JavaScript (javascript)

Vous devriez voir au moins libvorbis pour Ogg Vorbis et libmp3lame pour MP3.

Convertir un fichier MP3 en Ogg Vorbis

Pour convertir un seul fichier MP3 en Ogg Vorbis :

ffmpeg -i "fichier.mp3" -c:a libvorbis -q:a 5 "fichier.ogg"Langage du code : CSS (css)

Le paramètre -c:a libvorbis force l’encodeur audio Vorbis. Le paramètre -q:a 5 active une qualité variable raisonnable pour la plupart des usages.

Pour Ogg Vorbis, la qualité ne se pense pas exactement comme un débit fixe en kilobits par seconde. On utilise plutôt une échelle de qualité. En pratique, -q:a 4 ou -q:a 5 donne déjà un résultat propre pour de l’audio parlé ou musical standard.

Convertir tous les MP3 d’un dossier en Ogg Vorbis

Si vos noms de fichiers ne contiennent pas d’espaces, une boucle simple peut suffire :

for file in *.mp3; do
    ffmpeg -i "$file" -c:a libvorbis -q:a 5 "${file%.mp3}.ogg"
doneLangage du code : JavaScript (javascript)

La partie ${file%.mp3}.ogg remplace proprement l’extension .mp3 par .ogg.

Version plus robuste, avec gestion des fichiers contenant des espaces :

find . -maxdepth 1 -type f -iname '*.mp3' -print0 | while IFS= read -r -d '' file; do
    output="${file%.*}.ogg"
    ffmpeg -i "$file" -c:a libvorbis -q:a 5 "$output"
doneLangage du code : JavaScript (javascript)

Cette version utilise find avec -print0, ce qui évite de casser la boucle dès qu’un fichier contient un espace, une apostrophe ou un caractère un peu pénible.

Éviter d’écraser les fichiers existants

Par défaut, FFmpeg peut demander confirmation si le fichier de sortie existe déjà. Pour refuser l’écrasement automatiquement, ajoutez -n :

find . -maxdepth 1 -type f -iname '*.mp3' -print0 | while IFS= read -r -d '' file; do
    output="${file%.*}.ogg"
    ffmpeg -n -i "$file" -c:a libvorbis -q:a 5 "$output"
doneLangage du code : JavaScript (javascript)

À l’inverse, pour écraser les fichiers existants sans poser de question, utilisez -y. À manier avec calme et caféine modérée.

ffmpeg -y -i "fichier.mp3" -c:a libvorbis -q:a 5 "fichier.ogg"Langage du code : CSS (css)

Choisir la qualité Vorbis

Pour Ogg Vorbis, -q:a définit une qualité variable. Plus la valeur est élevée, plus le fichier sera lourd, mais meilleure sera la qualité.

QualitéUsage conseillé
-q:a 3Audio parlé, taille réduite
-q:a 4Bon compromis pour voix et musique légère
-q:a 5Qualité confortable pour un usage Web
-q:a 6Meilleure qualité, fichiers plus lourds

Pour des conférences, cours, méditations guidées ou contenus parlés, -q:a 4 peut suffire. Pour de la musique, je partirais plutôt sur -q:a 5 ou -q:a 6.

Convertir des Ogg Vorbis en MP3

Pour convertir un fichier Ogg Vorbis vers MP3 :

ffmpeg -i "fichier.ogg" -c:a libmp3lame -q:a 2 "fichier.mp3"Langage du code : CSS (css)

Avec libmp3lame, -q:a 2 donne généralement une très bonne qualité en VBR. Pour un fichier parlé, vous pouvez viser plus léger avec un débit fixe :

ffmpeg -i "fichier.ogg" -c:a libmp3lame -b:a 128k "fichier.mp3"Langage du code : CSS (css)

Pour convertir tous les fichiers .ogg du dossier courant en MP3 :

find . -maxdepth 1 -type f -iname '*.ogg' -print0 | while IFS= read -r -d '' file; do
    output="${file%.*}.mp3"
    ffmpeg -n -i "$file" -c:a libmp3lame -q:a 2 "$output"
doneLangage du code : JavaScript (javascript)

Gardez toutefois une chose en tête : convertir un Ogg en MP3 revient à convertir un format avec perte vers un autre format avec perte. Si vous avez encore les fichiers originaux en WAV ou FLAC, repartez de ces sources.

Conserver les métadonnées audio

FFmpeg conserve souvent les métadonnées simples, mais vous pouvez être plus explicite avec -map_metadata 0 :

ffmpeg -i "fichier.mp3" -map_metadata 0 -c:a libvorbis -q:a 5 "fichier.ogg"Langage du code : CSS (css)

Pour vérifier les métadonnées d’un fichier avant ou après conversion :

ffprobe "fichier.ogg"Langage du code : JavaScript (javascript)

HTML5 audio : faut-il encore fournir MP3 et Ogg ?

Pour intégrer de l’audio dans une page HTML, vous pouvez fournir plusieurs formats avec plusieurs balises source. Le navigateur choisira le format qu’il sait lire.

<audio controls>
    <source src="audio.mp3" type="audio/mpeg">
    <source src="audio.ogg" type="audio/ogg">
    Votre navigateur ne supporte pas l’élément audio.
</audio>Langage du code : HTML, XML (xml)

En pratique, MP3 bénéficie aujourd’hui d’une excellente compatibilité. Ogg Vorbis reste intéressant comme format ouvert, notamment si vous voulez proposer plusieurs sources ou privilégier un format libre.

Créer un dossier de sortie

Pour éviter de mélanger les fichiers source et les fichiers convertis, créez un dossier dédié :

mkdir -p ogg

Puis envoyez les fichiers convertis dedans :

find . -maxdepth 1 -type f -iname '*.mp3' -print0 | while IFS= read -r -d '' file; do
    base="$(basename "${file%.*}")"
    ffmpeg -n -i "$file" -c:a libvorbis -q:a 5 "ogg/${base}.ogg"
doneLangage du code : JavaScript (javascript)

C’est plus propre, surtout si vous devez ensuite envoyer les fichiers vers un site WordPress, un CDN ou un dossier d’archives.

Version Bash réutilisable

Si vous faites souvent cette conversion, créez un petit script :

nano mp3-to-ogg.shLangage du code : CSS (css)

Collez le contenu suivant :

#!/usr/bin/env bash

set -euo pipefail

output_dir="ogg"
quality="5"

mkdir -p "$output_dir"

find . -maxdepth 1 -type f -iname '*.mp3' -print0 | while IFS= read -r -d '' file; do
    base="$(basename "${file%.*}")"
    output="${output_dir}/${base}.ogg"

    if [[ -e "$output" ]]; then
        printf 'Ignoré, fichier existant : %s\n' "$output"
        continue
    fi

    printf 'Conversion : %s -> %s\n' "$file" "$output"
    ffmpeg -hide_banner -i "$file" -map_metadata 0 -c:a libvorbis -q:a "$quality" "$output"
doneLangage du code : PHP (php)

Rendez-le exécutable :

chmod +x mp3-to-ogg.shLangage du code : CSS (css)

Puis lancez-le dans le dossier contenant vos MP3 :

./mp3-to-ogg.sh

Checklist avant conversion

  • Installez ffmpeg.
  • Travaillez sur une copie si les fichiers sont importants.
  • Utilisez des guillemets autour des noms de fichiers.
  • Préférez find -print0 pour les lots avec espaces et caractères spéciaux.
  • Utilisez -n pour éviter d’écraser les fichiers existants.
  • Évitez les conversions avec perte répétées.
  • Pour le Web, testez l’intégration avec plusieurs navigateurs.

À retenir

Pour convertir des MP3 en Ogg Vorbis sous Linux, utilisez désormais ffmpeg plutôt que avconv.

La commande simple à retenir est :

ffmpeg -i "fichier.mp3" -c:a libvorbis -q:a 5 "fichier.ogg"Langage du code : CSS (css)

Pour un lot complet, préférez une boucle robuste avec find -print0. Elle vous évitera les petits drames causés par les espaces dans les noms de fichiers. Les fichiers audio ont déjà assez souffert comme ça.

Sources