aboutsummaryrefslogblamecommitdiff
path: root/emulators/linux-ePSXe/files/epsxe-wrapper.in
blob: e50fd69ad8e21401dce0e1dc2b7bfb4402d9f1b9 (plain) (tree)





















































                                                                  
#!/bin/sh
# $FreeBSD$

EPSXE=%%PREFIX%%/libexec/epsxe
DATADIR=%%DATADIR%%
PSEMUPRO_PLUGINS_DIR=%%PREFIX%%/lib/psemupro/plugins
PSEMUPRO_CFGBINS_DIR=%%PREFIX%%/libexec/psemupro/cfg
PSEMUPRO_CFGFILES_DIR=%%PREFIX%%/share/psemupro/cfg

USERDIR=$HOME/.epsxe

remove_stale_symlinks () {
    dir="$1"
    
    for f in $dir/*; do
	[ "x$f" = "x$dir/*" ] && break

	target=`readlink $f`
	if [ -n "$target" ] && [ ! -e "$target" ]; then
	    rm -f $f
	fi
    done
}

### create $USERDIR hierarchy

for d in bios cfg cheats memcards patches plugins snap sstates; do
    mkdir -p $USERDIR/$d || exit 1
done

### remove stale symlinks

for d in plugins cfg; do
    remove_stale_symlinks $USERDIR/$d || exit 1
done

### populate $USERDIR

ln -sf $EPSXE $USERDIR/epsxe || exit 1

for f in keycodes.lst cheats/breath_of_fire_4_usa.cht \
    cheats/chrono_cross_ntsc.cht cheats/tarzan_pal.cht; do
    ln -sf $DATADIR/$f $USERDIR/$f || exit 1
done

ln -sf $PSEMUPRO_PLUGINS_DIR/* $USERDIR/plugins 2>/dev/null
ln -sf $PSEMUPRO_CFGBINS_DIR/* $USERDIR/cfg 2>/dev/null
cp -n $PSEMUPRO_CFGFILES_DIR/* $USERDIR/cfg 2>/dev/null
chmod u+w $USERDIR/cfg/* 2>/dev/null

### run the emulator

cd $USERDIR || exit 1
exec ./epsxe "$@"