#!/bin/bash function exit_on_fail() { "$@" local status=$? if [ $status -ne 0 ]; then echo "Erreur avec: $@" >&2 exit $status fi return $status } 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 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"