46 lines
1.3 KiB
Bash
Executable File
46 lines
1.3 KiB
Bash
Executable File
#!/bin/sh -e
|
|
# prepare
|
|
if [ -z "${XDG_DATA_HOME}" ]; then
|
|
XDG_DATA_HOME="${HOME}/.local/share"
|
|
fi
|
|
mkdir -p "${XDG_DATA_HOME}/gbm"
|
|
pidfile="${XDG_DATA_HOME}/gbm/pid"
|
|
|
|
# check whether pid file exists and process is running
|
|
if ( ! [ -e "${pidfile}" ] || ! pgrep -F "${pidfile}" ); then
|
|
|
|
# check for all dependencies
|
|
for prog in mono readlink df 7za;do
|
|
[ -n "`whereis -b ${prog} | cut -sd' ' -f2`" ] || (echo "Please install ${prog}" && exit 1);
|
|
done
|
|
for lib in libsqlite3;do
|
|
[ -n "`ldconfig -p | grep ${lib}`" ] || (echo "Please install ${lib}" && exit 1);
|
|
done
|
|
|
|
# directory this script is located in
|
|
dir="$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)"
|
|
echo "Located in ${dir}";
|
|
gbmpath='./';
|
|
|
|
# locate GBM.exe
|
|
if [ "${dir}" = '/usr/bin' ] && [ -s '/usr/share/gbm/GBM.exe' ]; then
|
|
gbmpath='/usr/share/gbm/';
|
|
elif [ "${dir}" = '/usr/local/bin' ] && [ -s '/usr/local/share/gbm/GBM.exe' ]; then
|
|
gbmpath='/usr/local/share/gbm/';
|
|
elif [ ! -s './GBM.exe' ]; then
|
|
echo 'GBM.exe not found';
|
|
exit 2;
|
|
fi
|
|
|
|
# pass our arguments to GBM and run it in background
|
|
mono --desktop "${gbmpath}GBM.exe" "$@" &
|
|
# store pid and wait for process to end
|
|
echo $! > "${pidfile}"
|
|
wait $!
|
|
rm "${pidfile}"
|
|
exit $?;
|
|
else
|
|
echo "GBM is already running"
|
|
exit 1;
|
|
fi
|