J'hésite

Toujours en train de faire un peu le ménage du côté de mes dépôts, j’ai commencé ce matin à faire un script de build pour mes plugins et thèmes.

Ça ressemble à ça :

#!/bin/sh

# ---- should be modified if necessary ----

# Module type
MOD_TYPE="plugin"

# Default module version
DEF_VERSION="0.1"

# Path for JS minifier (1st argument is the js file to minify)
MIN_JS="../../git-dc/build-tools/min-js.php"

# ---- nothing to modify below ----

# Find module name
MOD_NAME=$(basename "$PWD")
[ -z "$MOD_NAME" ] && { echo "Unable to find module name!" ; exit 1; }

# Copy all files to tmp dir
if [ -d "$MOD_NAME" ]; then
  rm -rf ./"$MOD_NAME"
fi
mkdir ./"$MOD_NAME"
rsync --exclude="$MOD_NAME" --exclude="mkdocs" --exclude="build.sh" --exclude=".git*" --exclude=".DS_Store" --exclude="*.zip" --exclude="*.map" --exclude="*.rb" --exclude="sass" --exclude="scss" --exclude=".sass*" --exclude="scripts" -a . ./"$MOD_NAME"

# Pack Javascript files
if [ -z "$MIN_JS" ]; then
  find ./"$MOD_NAME" -name '*.js' -exec $MIN_JS \{\} \;
fi

# Find last version (if any)
CUR_VERSION=$(git tag -l | sort -r -V | grep -E "[0-9]" | head -n 1)
if [ -z "$CUR_VERSION" ]; then
  CUR_VERSION=$DEF_VERSION
fi

# Make installable archive
if [ -f $MOD_TYPE-"$MOD_NAME"-$CUR_VERSION.zip ]; then
  rm $MOD_TYPE-"$MOD_NAME"-$CUR_VERSION.zip
fi
zip -q -r $MOD_TYPE-"$MOD_NAME"-$CUR_VERSION.zip ./"$MOD_NAME"/

# Cleanup
rm -rf ./"$MOD_NAME"

# Final output
echo "$MOD_TYPE-$MOD_NAME-$CUR_VERSION.zip ready!"

Quelques trucs à modifier en début, entre autre le type de module, plugin ou theme, et éventuellement le chemin d’accès au « minifier » de javascript, rien de plus, le reste est a priori générique et produit une archive zip installable dans le même répertoire, en considérant que c’est git qui est utilisé pour gérer le dépôt local.

Mon hésitation est la suivante :

  • Dois-je dupliquer ce script dans chacun de mes répertoires de plugin et de thème, c’est à dire pas loin de 80, ce qui compliquerait la maintenance mais rendrait la fabrication d’une archive indépendante (ou quasi sachant qu’on peut tout à fait zapper la minification) ?
  • Ou bien est-il plus intéressant de modifier ce script légèrement et de le mettre dans le répertoire build-tools de Dotclear, ce qui impliquerait d’avoir une version de développement de Dotclear (récupérée à partir d’un dépôt) mais qui simplifierait grandement la maintenance du script de fabrication ?

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/14315

Haut de page