#!/bin/bash PS2EMUDIR=GAMES_LIBDIR/ps2emu PS2BINDIR=GAMES_PREFIX_OPT/pcsx2 PS2DIR=GAMES_DATADIR/pcsx2 FOLDERS="memcards bios help Langs logs snap sstates patches plugins .pixmaps" FILES="A39517AB.xml pcsx2" CONFIGFOLDERS="inis cfg" mkdir -p ~/.pcsx2 cd ~/.pcsx2 cleanlinks mkdir -p ${FOLDERS} ${CONFIGFOLDERS} shopt -s nullglob # Insert creates all folders found in $1 and creates symlinks # or copies to all files found in $1, creating the dest folder # if needed. If dest is unspecified, it defaults to the # basename of src. Filetypes are sym or copy. # Usage: insert filetype src (dest) # A phonetic usage would be: # "Take this file/folder and insert it into this directory. # For every file, symlink/copy it to the destination." insert() { local src dest filetype="${1}" src="${2}" dest="${3}" : ${dest:="."} if [ "$(basename "${src}")" != "${src}" ]; then dest="${dest}/$(basename "${src}")" fi if [ -e "${src}" ]; then if [ -d "${src}" ]; then if [ -e "${dest}" ]; then [ ! -d "${dest}" ] && return 1 else mkdir -p "${dest}" fi for f in $(find "${src}" -maxdepth 1 -type f -printf '%f ') ; do if [ ! -e "${dest}/${f}" ]; then if [ "${filetype}" == "sym" ]; then ln -s "${src}/${f}" "${dest}" elif [ "${filetype}" == "copy" ]; then cp -f "${src}/${f}" "${dest}" fi fi done set $(find "${src}" -maxdepth 1 -type d -printf '%f ') shift for d in $*; do insert "${filetype}" "${src}/${d}" "${dest}" done else if [ "${filetype}" == "sym" ]; then ln -sf "${src}" "${dest}" elif [ "${filetype}" == "copy" ]; then cp -f "${src}" "${dest}" fi fi else return 1 fi } for f in ${FILES} ${FOLDERS}; do insert sym ${PS2EMUDIR}/${f} insert sym ${PS2BINDIR}/${f} insert sym ${PS2DIR}/${f} done for f in ${CONFIGFOLDERS}; do insert copy ${PS2EMUDIR}/${f} insert copy ${PS2BINDIR}/${f} insert copy ${PS2DIR}/${f} done if [ -z "$(ls bios/)" ] ; then echo echo "*** Put your BIOS file into ~/.pcsx2/bios/" echo " or pcsx2 may not work!" echo fi exec ./pcsx2 "$@"