outils_dev_appimage/template.sh

80 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# à utiliser pour builder une appimage d'une app quelconque, y compris hors cadre GIREF/BIB
# Ceci est un point départ plus qu'un script clef en main !
function exit_on_fail() {
"$@"
local status=$?
if [ $status -ne 0 ]; then
echo "Erreur avec: $@" >&2
exit $status
fi
return $status
}
# Fonction permettant d'effectuer quelques vérifications de base
function verifications() {
echo "### Vérifications"
command -v linuxdeploy-x86_64.AppImage >/dev/null 2>&1 || {
echo >&2 "L'outil linuxdeploy-x86_64.AppImage n'est pas présent, pas de livraison possible !"
exit 1
}
command -v appimagetool-x86_64.AppImage >/dev/null 2>&1 || {
echo >&2 "L'outil appimagetool-x86_64.AppImage n'est pas présent, pas de livraison possible !"
exit 1
}
}
if [[ "$#" -ne 2 ]] && [[ "$#" -ne 3 ]]; then
echo "Usage: $0 CHEMIN_COMPLET_VERS_APP/mon_app CHEMIN_DESTINATION_APPIMAGE"
exit 0
fi
script_dir=$(dirname $0)
BIN=$1
DEST_DIR=$2
verifications
APP_NOM=$(basename $BIN)
if [[ -z NOM_APPIMAGE ]]; then
if [[ "$APP_NOM" =~ "." ]]; then
NOM_APPIMAGE="${APP_NOM%.???}"
else
NOM_APPIMAGE=$APP_NOM
fi
fi
AUTRES_OPTIONS=""
# Répertoire de travail
WORK_DIR=$DEST_DIR/build_AppImage
rm -rf $WORK_DIR
mkdir -p $WORK_DIR/AppDir
# Si la variable d'env CUSTOM_STEP_PRE_DEPLOY n'est pas vide, on l'utilise pour spécifier des commandes supplémentaires
# (CUSTOM_STEP_PRE_DEPLOY doit être le chemin vers le fichier contenant les commandes supplémentaires
if [[ -n $CUSTOM_STEP_PRE_DEPLOY ]]; then
echo "On source le fichier $CUSTOM_STEP_PRE_DEPLOY"
source $CUSTOM_STEP_PRE_DEPLOY
fi
exit_on_fail linuxdeploy-x86_64.AppImage --appdir $WORK_DIR/AppDir \
--executable $BIN \
$AUTRES_OPTIONS
# idem PRE_DEPLOY mais après l'appel à linuxdeploy (la structure du AppDir est alors terminée)
if [[ -n $CUSTOM_STEP_POST_DEPLOY ]]; then
echo "On source le fichier $CUSTOM_STEP_POST_DEPLOY"
source $CUSTOM_STEP_POST_DEPLOY
fi
# Création du fichier .AppImage
echo "### Création fichier .AppImage"
exit_on_fail appimagetool-x86_64.AppImage $WORK_DIR/AppDir $DEST_DIR/$NOM_APPIMAGE.AppImage
rm -rf $WORK_DIR
chown $USER:$GROUP $DEST_DIR/$NOM_APPIMAGE.AppImage
echo "Création terminée ! -> $DEST_DIR/$NOM_APPIMAGE.AppImage"