From e6e63307fd2920d9eaaf32fc1595e4a141ac3b25 Mon Sep 17 00:00:00 2001 From: Andrew Date: Fri, 13 Dec 2013 09:38:17 -0600 Subject: Made the run script look for missing dependencies. On Linux, MultiMC's startup script will now look for plugins with missing depenedencies and warn the user about them if they are missing. --- package/linux/MultiMC | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/package/linux/MultiMC b/package/linux/MultiMC index a2ef0c81..8229b24f 100755 --- a/package/linux/MultiMC +++ b/package/linux/MultiMC @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/sh # Basic start script for running MultiMC with the libs packaged with it. MMC_DIR=`dirname "$0"` @@ -10,9 +10,24 @@ export LD_LIBRARY_PATH="${MMC_DIR}/bin":$LD_LIBRARY_PATH export QT_PLUGIN_PATH="${MMC_DIR}/plugins" export QT_FONTPATH="${MMC_DIR}/fonts" -# Just to be sure... -chmod +x "${MMC_DIR}/bin/MultiMC" +# Detect missing dependencies... +DEPS_LIST=`ldd "${MMC_DIR}"/plugins/*/*.so | grep "not found" | awk -vORS=", " '{ print $1 }'` +if [ -z $DEPS_LIST ]; then + # We have all our dependencies. Run MultiMC. + echo "No missing dependencies found." -# run MultiMC -"${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" $@ + # Just to be sure... + chmod +x "${MMC_DIR}/bin/MultiMC" + + # Run MultiMC + "${MMC_DIR}/bin/MultiMC" -d "${MMC_DIR}" $@ + + # Exit with MultiMC's exit code. + exit $? +else + echo "Error: MultiMC is missing the following libraries that it needs to work correctly:" + echo "\t${DEPS_LIST}" + echo "Please install them from your distribution's package manager." + exit 1 +fi -- cgit v1.2.3