#!/bin/sh # these variables can be overridden on commandline WORKDIR="$(pwd)" DESKTOPFILE="$WORKDIR/steam.desktop" LAUNCHSTEAMDIR=${XDG_DATA_HOME:-~/.local/share}/Steam LAUNCHSTEAMPLATFORM=ubuntu12_32 LAUNCHSTEAMBIN=$LAUNCHSTEAMDIR/$LAUNCHSTEAMPLATFORM LAUNCHSTEAMBOOTSTRAP=$LAUNCHSTEAMDIR/steam.sh LAUNCHSTEAMBOOTSTRAPFILE="$WORKDIR/bootstraplinux_$LAUNCHSTEAMPLATFORM.tar.xz" EXELINK=~/.steampath # full path of steam (~/Steam/ubuntu12_32/steam) STEAMROOTLINK=~/.steam/root # used by games to find the steam install directory (~/Steam) if ! [ -x "$LAUNCHSTEAMBOOTSTRAP" ]; then # user does not have steam set up yet, do some sanity checks and set it up echo "Setting up steam platform in $LAUNCHSTEAMDIR" mkdir -p "$LAUNCHSTEAMDIR" cd "$LAUNCHSTEAMDIR" tar -xvJf "$LAUNCHSTEAMBOOTSTRAPFILE" || { echo "Failed to extract $LAUNCHSTEAMBOOTSTRAPFILE, aborting installation." exit 1 ;} # create the symlinks in the user's home directory [ -e ~/.steam ] || mkdir ~/.steam # copy steam bootstrap archive to STEAMROOT cp "${LAUNCHSTEAMBOOTSTRAPFILE}" "${LAUNCHSTEAMDIR}"/bootstrap.tar.xz rm -f ${EXELINK} && ln -s "${LAUNCHSTEAMBIN}"/steam ${EXELINK} rm -f ${STEAMROOTLINK} && ln -s "${LAUNCHSTEAMDIR}" ${STEAMROOTLINK} # put the Steam icon on the user's desktop # try to read ~/.config/user-dirs.dirs to get the current desktop directory # http://www.freedesktop.org/wiki/Software/xdg-user-dirs test -f ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs && . ${XDG_CONFIG_HOME:-~/.config}/user-dirs.dirs DESKTOP_DIR=${XDG_DESKTOP_DIR:-$HOME/Desktop} cp "${DESKTOPFILE}" "${DESKTOP_DIR}" chmod +x "${DESKTOP_DIR}/steam.desktop" fi # go to the install directory and run the client LAUNCHSTEAMDIR=`readlink -e $STEAMROOTLINK` cd $LAUNCHSTEAMDIR exec "$LAUNCHSTEAMDIR/steam.sh" $*