¡Hola de nuevo! Dejo aquí un Shell Script de ayuda para preparar los ficheros de publicación para cada nueva versión de un plugin para WordPress. La idea es que estamos trabajando en un plugin en una instalación de WordPress. Por defecto en WordPress los plugins estarán en el directorio /wp-content/plugins/slug-de-tu-plugin/ y tendremos que preparar los ficheros antes de subirlos al repositorio de Subversion y publicarlos así en la comunidad de plugins para WordPress.
Este preparar los ficheros se puede hacer manualmente. Pero con cada nueva versión se puede volver tedioso, aburrido, el volver a generar la estructura. Así que si ya tenemos revisado y aceptado el publicar un plugin, podemos usar este Shell Script para ir publicando nuevas versiones.
La estructura que propone WordPress para los ficheros Subversion
- assets/ Aquí los ficheros de imágenes relacionados con la publicación en WordPress.org.
- branches/ Este directorio no se usa.
- tags/ Aquí un subdirectorio por versión, se suele dejar alguna versión de cada número mayor.
- trunk/ Aquí el último estado de los ficheros en curso, la última versión.
El Shell Script siguiente propone generar bajo un directorio extra/ esta estructura. Más información aquí:
https://developer.wordpress.org/plugins/wordpress-org/how-to-use-subversion/
Al grano, el código fuente
#!/bin/bash
plugin_slug="slug-de-tu-plugin"
svn_repository="https://plugins.svn.wordpress.org/$plugin_slug/"
# CURRENT VERSION TO PREPARE
current_version=0.1
if [ ! $1 ]; then
echo "There is no argument. We use version: $current_version"
else
current_version=$1
echo "Using version: $current_version"
fi
# PREPARING DIRECTORIES STRUCTURE
if [ ! -d "extra/$plugin_slug/" ]; then
cd extra/
svn checkout "$svn_repository"
cd ..
mkdir "extra/$plugin_slug/branches/"
echo "SVN checkout and initial directories created!"
fi
# CLEANING AND PREPARING TRUNK
rm -rf "extra/$plugin_slug/trunk/*"
cp -r "wp-content/plugins/$plugin_slug/." "extra/$plugin_slug/trunk/"
rm -rf "extra/$plugin_slug/trunk/.git/"
echo "Cleaning and preparing files for version $current_version.."
# PREPARING ASSETS
rm -rf "extra/$plugin_slug/assets/*"
cp -r "wp-content/plugins/$plugin_slug/assets/." "extra/$plugin_slug/assets/"
echo "Preparing assets for $current_version.."
# FINALLY THE TRUNK FILES ARE FOR THE CURRENT VERSION
rm -rf "extra/$plugin_slug/tags/$current_version/"
mkdir "extra/$plugin_slug/tags/$current_version/"
cp -r "extra/$plugin_slug/trunk/." "extra/$plugin_slug/tags/$current_version/"
echo "Preparing trunk files for current version publishing $current_version.."
echo "All done!"
exit 0
Este Shell Script se podría poner en GNU/Linux en un fichero preparePlugin.sh. Generará la estructura en un directorio /extra y se puede lanzar así para cada nueva versión que queramos publicar:
./preparePlugin.sh 0.1
./preparePlugin.sh 0.2
./preparePlugin.sh 0.3
Con lo que esto generaría los directorios:
- extra/slug-de-tu-plugin/tags/0.1
- extra/slug-de-tu-plugin/tags/0.2
- extra/slug-de-tu-plugin/tags/0.3
Ya sólo quedaría entrar y hacer el ‘svn commit -m «Publish new version»‘. Espero que sirva. ¡Un saludo!